/**吸血鬼数字是指数为偶数的数字,可以由一对数字相乘得到,而这对数字各包含乘机的一半位数的数
* 字,其中从最初的数字中选取的数字可以任意排序。以两个0结尾的数字不允许的。*/
publicclass Vampire {
publicstaticvoid main(String[]args){
int i_val;//吸血鬼数字
String[]ar_sta1,ar_sta2;//将吸血鬼数字转化成字符串
int num = 0;//记录吸血鬼数字的个数
for(inti=10;i<100;i++){
for(int j = i+1;j<100;j++){ //两层for循环将所有两位数数找出
i_val = i*j;
if(i_val>1000&&i_val<9999){ //判断吸血鬼数字是否是四位数
ar_sta1 =String.valueOf(i_val).split("");//将吸血鬼的四位数转化成字符串
ar_sta2 =(String.valueOf(i)+String.valueOf(j)).split("");//将吸血鬼的两位相乘的数转化成字符串
java.util.Arrays.sort(ar_sta1);//将刚转化成的数字进行排序
java.util.Arrays.sort(ar_sta2);
if(java.util.Arrays.equals(ar_sta1,ar_sta2)){ //判断字符串数组是否相等
num++;
System.out.println("第"+num+"个吸血鬼数字是"+i+"*"+j+"="+i_val);
}
}
}
}
System.out.println("一共有"+num+"个吸血鬼数字");
}
}
String.valueOf();将其他任何类型转化成字符串类型
String.split(“”);将字符串分离成一个字母组成的字符串
其参数是可以变化的若string.split(“:”);表示将字符串以:为标准将字符串分成不含:的小字符串。
a.equals(b);是比较的两个引用
java.util.Arrays.equals(a,b)比较的是a和b 的两个数组的个数以及数组的元素是否相等。