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