本程序主要由两部分构成(1)拆分函数demerge(),用以拆分所有的四位数字;(2)For循环嵌套条件语句,用来查找4位以内的吸血鬼数字。
public class VampireNumber {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
for(int i=1000;i<10000;i++){
int[] iarray=new int[4];//拆分数字,从个位,十位,百位,千位组合相乘;
iarray=Demerge.demerge(i);
if((iarray[3]*10+iarray[2])*(iarray[1]*10+iarray[0])==i){
System.out.println("吸血鬼数字为:"+i+"="+(iarray[3]*10+iarray[2])+"*"+(iarray[1]*10+iarray[0]));
}
else if((iarray[3]*10+iarray[2])*(iarray[1]+iarray[0]*10)==i){
System.out.println("吸血鬼数字为: "+i+"="+(iarray[3]*10+iarray[2])+"*"+(iarray[1]+iarray[0]*10));
}
else if((iarray[3]+iarray[2]*10)*(iarray[1]*10+iarray[0])==i){
System.out.println("吸血鬼数字为: "+i+"="+(iarray[3]+iarray[2]*10)+"*"+(iarray[1]*10+iarray[0]));
}
else if((iarray[3]+iarray[2]*10)*(iarray[1]+iarray[0]*10)==i){
System.out.println("吸血鬼数字为:"+i+"="+(iarray[3]+iarray[2]*10)+"*"+(iarray[1]+iarray[0]*10));
}
else if((iarray[3]*10+iarray[1])*(iarray[2]*10+iarray[0])==i){
System.out.println("吸血鬼数字为:"+i+"="+(iarray[3]*10+iarray[1])+"*"+(iarray[2]*10+iarray[0]));
}
else if((iarray[3]*10+iarray[1])*(iarray[2]+iarray[0]*10)==i){
System.out.println("吸血鬼数字为: "+i+"="+(iarray[3]*10+iarray[1])+"*"+(iarray[2]+iarray[0]*10));
}
else if((iarray[3]+iarray[1]*10)*(iarray[2]*10+iarray[0])==i){
System.out.println("吸血鬼数字为: "+i+"="+(iarray[3]+iarray[1]*10)+"*"+(iarray[2]*10+iarray[0]));
}
else if((iarray[3]+iarray[1]*10)*(iarray[2]+iarray[0]*10)==i){
System.out.println("吸血鬼数字为: "+i+"="+(iarray[3]+iarray[1]*10)+"*"+(iarray[2]+iarray[0]*10));
}
else if((iarray[3]*10+iarray[0])*(iarray[1]*10+iarray[2])==i){
System.out.println("吸血鬼数字为: "+i+"="+(iarray[3]*10+iarray[0])+"*"+(iarray[1]*10+iarray[2]));
}
else if((iarray[3]*10+iarray[0])*(iarray[1]+iarray[2]*10)==i){
System.out.println("吸血鬼数字为:"+i+"="+(iarray[3]*10+iarray[0])+"*"+(iarray[1]+iarray[2]*10));
}
else if((iarray[3]+iarray[0]*10)*(iarray[1]*10+iarray[2])==i){
System.out.println("吸血鬼数字为:"+i+"="+(iarray[3]+iarray[0]*10)+"*"+(iarray[1]*10+iarray[2]));
}
else if((iarray[3]+iarray[0]*10)*(iarray[1]+iarray[2]*10)==i){
System.out.println("吸血鬼数字为: "+i+"="+(iarray[3]+iarray[0]*10)+"*"+(iarray[1]+iarray[2]*10));
}
}
}
}
class Demerge{
public static int[] demerge(int i){
int count=-1;
int[]iarray=new int[4];
while(i/10!=0){
count++;
iarray[count]=i%10;
i=i/10;
}
count++;
iarray[count]=i%10;
return iarray;
}
}
output:
吸血鬼数字为: 1260=21 * 60
吸血鬼数字为: 1395=15 * 93
吸血鬼数字为: 1435=41 * 35
吸血鬼数字为: 1530=51 * 30
吸血鬼数字为: 1827=21 * 87
吸血鬼数字为: 2187=27 * 81
吸血鬼数字为: 6880=86 * 80