如何实现下面的算法,请高手们指点指点!吸血鬼数字是指位数为偶数的数字,可以由一对数字相乘而得到,而这对数字各包含乘积的一半位数的数字,其中从最初的数字中选取的数字可以任意排序。以两个0结尾的数字是不允许的,例如,下列数字都是“吸血鬼”数字:
1260=21*60
1827=21*87
2187=27*81
写一个程序,找出4位数的所有吸血鬼数字。

解决方案 »

  1.   

    看下我的文章 有答案
    http://blog.csdn.net/java_cxrs/archive/2008/11/13/3286305.aspx
      

  2.   

    感谢java_cxrs 
    还有没有其它方法实现?
      

  3.   

    我看了下1#的代码,巧妙,把匹配数字问题变成了排序问题。不过可以用tocharArray来替换你的split方法,吹毛求疵了...
      

  4.   

    第一印象看到,想到的最笨的方法:
    首先4位数所有数字,采用一个循环(1000《x《9999),然后用一个判断去除后两位为0的数字(大概就是%100!=0),
    然后符合条件的每个数字进行判断(是否能有xx*xx得到)。
    貌似时间复杂度为:10000*100*100,效率比较低。
    时间比较晚了,改天来看看怎么优化下。