题目描述:
吸血鬼数字是指位数为偶数的数字,可以由一对数字相乘而得到,
而这对数字各包含乘积的一半位数的数字,其中最初的数字中可以
选取的数字可以任意排序,以两个0结尾的数字是不允许的,例如,下
面的数字都是吸血鬼数字:
1260=21*60
1827=21*87
2187=27*81
编写一个程序,找出4位数的所有吸血鬼数字。
1 package chapter3_Ex10; 2 3 public class Vampire { 4 5 public static void main(String[] args){ 6 int[] startDigit=new int[4]; 7 int[] productDigit=new int[4]; 8 for(int num1=10;num1<100;++num1){ 9 for(int num2=num1;num2<100;++num2){ 10 if((num1*num2)%9 != (num1+num2)%9) 11 continue; 12 int product=num1*num2; 13 startDigit[0]=num1/10; 14 startDigit[1]=num1%10; 15 startDigit[2]=num2/10; 16 startDigit[3]=num2%10; 17 productDigit[0]=product/1000; 18 productDigit[1]=product%1000/100; 19 productDigit[2]=product%1000%100/10; 20 productDigit[3]=product%1000%100%10; 21 int count=0; 22 for(int i=0;i<4;++i){ 23 for(int j=0;j<4;j++){ 24 if(startDigit[i]==productDigit[j]){ 25 ++count; 26 startDigit[i]=-1; 27 productDigit[j]=-2; 28 29 } 30 } 31 } 32 if(count==4){ 33 System.out.println(num1+" * "+num2+" = "+product); 34 } 35 } 36 } 37 } 38 }
运行结果:
原文:http://www.cnblogs.com/qinsongli/p/3740268.html