吸血鬼数字是指尾数为偶数的数字,可以由一对数字相乘而得到,而这对数字各包含乘积的一半位数的数字,其中从最初的数字中选取的数字可以任意排序,以两个0结尾的数字是不被允许的,例如:下列数字是吸血鬼数字:
1260=21 *60
1827=21*87
2187=27* 81
写一个程序,找出所有的吸血鬼数字

解决方案 »

  1.   

    这是thinking injava里的一道题
      

  2.   

    楼主...thinking in java里的题目要求有限定范围的..
    "写一个程序,找出4位数的所有吸血鬼数字"-----出自第四版..import java.util.*;public class VampireNumber {
    public static void findVampireNumber(){
    String[] str1,str2;
    for(int i = 10; i <100 ; i++)
    for(int j = i+1; j<100 ; j++){
    int prod = i * j;
    if(prod < 9999 && prod > 1000){
    str1=String.valueOf(prod).split("");
    str2=(String.valueOf(i)+String.valueOf(j)).split("");
    Arrays.sort(str1);
    Arrays.sort(str2);
    if(Arrays.equals(str1,str2))
    System.out.println(prod+" = "+i+" * "+j);
    }
    }
    }
    public static void main(String[] args){
    findVampireNumber();
    }
    }
    很容易理解了..就懒得写注释了= =...
    主要算法是将数字转为字符然后排序后比较..