这个程序我自己敲出来的代码,用的方法很笨的感觉,将就着吧,目前没时间想那么多,得继续学啊。
1 class Vnum{ 2 public static void main(String args[]){ 3 CheckVampire cVampire = new CheckVampire(); 4 for(int i=1000;i<10000;i++){ 5 if(cVampire.isVampire(i)){ 6 System.out.PRintln(i); 7 } 8 } 9 }10 11 static class CheckVampire{12 // 将num拆分为每一个,保存在numArr[]中13 void EveryBit(int num,int numArr[]){14 if((1000>num)||(10000<num)){15 numArr[0]=numArr[1]=numArr[2]=numArr[3]=0;16 return;17 }else if(num%100==0){18 numArr[0]=numArr[1]=numArr[2]=numArr[3]=0;19 return;20 }else{21 numArr[3]=num/1000;22 numArr[2]=num%1000/100;23 numArr[1]=num%100/10;24 numArr[0]=num%10;25 }26 }27 //输入一个num,返回值为true则该num为吸血鬼数字28 //由于是检测1000~9999以内的吸血鬼数字,则使用穷举法= =,网上应该有更好的办法29 boolean isVampire(int num){30 int numEveryBit[]=new int[4];31 EveryBit(num,numEveryBit);32 if(num==(numEveryBit[0]*10+numEveryBit[1])*(numEveryBit[2]*10+numEveryBit[3])){33 return true;34 }35 else if(num==(numEveryBit[0]*10+numEveryBit[1])*(numEveryBit[3]*10+numEveryBit[2])){36 return true;37 }38 else if(num==(numEveryBit[1]*10+numEveryBit[0])*(numEveryBit[2]*10+numEveryBit[3])){39 return true;40 }41 else if(num==(numEveryBit[1]*10+numEveryBit[0])*(numEveryBit[3]*10+numEveryBit[2])){42 return true;43 }44 45 else if(num==(numEveryBit[0]*10+numEveryBit[2])*(numEveryBit[1]*10+numEveryBit[3])){46 return true;47 }48 else if(num==(numEveryBit[0]*10+numEveryBit[2])*(numEveryBit[3]*10+numEveryBit[1])){49 return true;50 }51 else if(num==(numEveryBit[2]*10+numEveryBit[0])*(numEveryBit[1]*10+numEveryBit[3])){52 return true;53 }54 else if(num==(numEveryBit[2]*10+numEveryBit[0])*(numEveryBit[3]*10+numEveryBit[1])){55 return true;56 }57 58 else if(num==(numEveryBit[0]*10+numEveryBit[3])*(numEveryBit[1]*10+numEveryBit[2])){59 return true;60 }61 else if(num==(numEveryBit[0]*10+numEveryBit[3])*(numEveryBit[2]*10+numEveryBit[1])){62 return true;63 }64 else if(num==(numEveryBit[3]*10+numEveryBit[0])*(numEveryBit[1]*10+numEveryBit[2])){65 return true;66 }67 else if(num==(numEveryBit[3]*10+numEveryBit[0])*(numEveryBit[2]*10+numEveryBit[1])){68 return true;69 }70 else{71 return false;72 }73 }74 }75 }
新闻热点
疑难解答