黑马程序员技术交流社区
标题:
如何代码实现吸血鬼数字
[打印本页]
作者:
yaodd321
时间:
2014-11-3 22:11
标题:
如何代码实现吸血鬼数字
这个问题以前问过,没有好的答案,只要再提问依次:(
吸血鬼数字是指位数为偶数的数字,可以由一对数字相乘而得到,而这对数字个包含乘积的一半位数的数字,以两个0结尾的数字是不允许的。例如1260=12*60,1827=21*87,2187=27*81,要求找出4位数的所有吸血鬼数字。
作者:
李天富
时间:
2014-11-3 23:43
import java.util.*;
class VampireNum
{
public static void main(String[] args)
{
for (int i=1000; i<10000; i++)
{
for (int j=10;j*j<=i ;j++ )
{
if(i%100==0)
continue;
if((i%j==0)&&(i/j>=10&&i/j<=99))
{
int temp=i/j;
byte[] b1=new Integer(i).toString().getBytes();
byte[] b2=(new Integer(j).toString()+new Integer(temp).toString()).getBytes();
Arrays.sort(b1);
Arrays.sort(b2);
if(Arrays.equals(b1,b2))
System.out.println(i+"="+j+"*"+temp);
}
}
}
}
}
复制代码
思路就是遍历所有的四位数,并进行因式分解,当两个因子都为两位数的时候,将该数各位取出存入一个byte数组中,并排序,同时,将两个因子中的各位数字取出并存入另一个byte数组中,并排序,当且仅当这两个byte数组相等时,该数为所求吸血鬼数。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2