题目描述:吸血鬼数字是指位数为偶数的数字,可以由一对数字相乘而得到,而这对数字各包含乘积一半位数的数字,其中从最初的数字中选取的数字可以任意排序。以两个0结尾的数字是不允许的,例如下列数字都是吸血鬼数字
1260=21*60;
1827=21*87;
2187=27*81;
写一个程序,找出4位数的所有吸血鬼数字
public void getVampireNum(){
for(int i=11;i<100;i++){
for(int j=i+1;j<100;j++){
int mul=i*j;
if(mul>=1000&&mul<=9999&&(mul%100)!=0){ //四位数且后两位不为0
/*
char[] mulChar=(mul+"").toCharArray();个人感觉转化为字符数组比较好
char[] numChar=(i+""+j).toCharArray();
*/
String[] mulStr=(mul+"").split("");//将乘积转换为字符串数组
String[] numStr=(String.valueOf(i)+String.valueOf(j)).split("");//将乘数拼在一起转换为字符串数组
Arrays.sort(mulStr);//将字符串数组升序排序
Arrays.sort(numStr);
if(Arrays.equals(mulStr, numStr)){ //使用Arrays的静态方法equals判断数组包含元素是否相等
System.out.println(i+"*"+j+"="+mul);
}
}
}
}
}