HNU JAVA 吸血鬼数字

2021/12/14 17:18:54

本文主要是介绍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] + " ");
        }

        }
}


这篇关于HNU JAVA 吸血鬼数字的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程