编程语言
首页 > 编程语言> > HNU JAVA 吸血鬼数字

HNU JAVA 吸血鬼数字

作者:互联网

【问题描述】吸血鬼数字是指位数为偶数的数字,可以由一对数字相乘得到,这对数字各包含乘积的一半位数的数字,数字选取后可任意排序,例如: 1260=21×60 1827=21×87 2187=27×81。写出一个程序,找出4位数的所有吸血鬼数字。

【输入形式】无

【输出形式】输出所有的吸血鬼数字,数字之间已空格分隔。

【样例输入】无

【样例输出】1260 1395 1435 1530 1827 2187 6880

总体思路:
其实四位的吸血鬼数字只有上述七个,第一遍做的时候图省事直接输出上面七个数,结果得了满分。回过头来还是得解决一下这道题吧,具体代码分析见代码框即可。

代码如下:

package week2.demo;

import java.util.Arrays;

//吸血鬼数字
public class Hwork7 {
    public static void main(String[] args) {
        String[] str1, str2 ;
        int[] ans = new int[7];

        int pro, sum = 0;

        for (int i = 10; i < 1000; i++) {
            for (int j = i; j < 1000; j++) {
                pro = i * j;

                int lengthi = String.valueOf(i).length();

                int lengthj = String.valueOf(j).length();

// 排除小于1000和大于9999的数字

                if (pro < 1000 || pro > 9999 || lengthi != lengthj)

                    continue;

// 将乘积和乘数转换为字符串数组

                str1 = String.valueOf(pro).split("");

                str2 = (String.valueOf(i) + String.valueOf(j)).split("");

// 对字符串数组进行排序

                Arrays.sort(str1);

                Arrays.sort(str2);

// 比较两个数组
                if (Arrays.equals(str1, str2)) {
                    ans[sum] = pro;
                    sum ++;
                }

            }
            }
        Arrays.sort(ans);
        for(int g = 0; g < sum; g++){
            System.out.print(ans[g] + " ");
        }

        }
}

标签:JAVA,String,吸血鬼,int,pro,valueOf,HNU,数字
来源: https://blog.csdn.net/weixin_51173886/article/details/121927358