這個程序我自己敲出來的代碼,用的方法很笨的感覺,將就著吧,目前沒時間想那么多,得繼續學啊。
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 }
新聞熱點
疑難解答