标签:param private print main public author 允许 java编程 ==
题目:吸血鬼数字是指位数为偶数的数字,可以由一对数字相乘而得到,而这对数字各包含乘积的一半位数的数字,其中从最初的数字中选取的数字可以任意排序。以两个0结尾的数字是不允许的,例如,下列数字都是“吸血鬼”数字:
1260=21*60
1827=21*87
2187=27*81
写一个程序,找出4位数的所有吸血鬼数字。
/**
* <p>吸血鬼数字</p>
* @author Shockang
*
*/
public class TheVampireNumbers
{
/**
* <p>判断一个4位数是否为吸血鬼数字的方法</p>
* @param num
* @return boolean
*/
private static boolean isVampire(int num)
{
int n1=num/1000;//4位数的首位数字
int n2=(num-n1*1000)/100;//第二位数字
int n3=(num-n1*1000-n2*100)/10;//第三位数字
int n4=num-n1*1000-n2*100-n3*10;//末位数字
//判断数字组合成的数乘积是否为原来的数
if( (n1*10+n2)*(n3*10+n4)==num ||
(n1*10+n2)*(n4*10+n3)==num ||
(n2*10+n1)*(n3*10+n4)==num ||
(n2*10+n1)*(n4*10+n3)==num ||
(n1*10+n3)*(n2*10+n4)==num ||
(n1*10+n3)*(n4*10+n2)==num ||
(n3*10+n1)*(n2*10+n4)==num ||
(n3*10+n1)*(n4*10+n2)==num ||
(n1*10+n4)*(n2*10+n3)==num ||
(n1*10+n4)*(n3*10+n2)==num ||
(n4*10+n1)*(n2*10+n3)==num ||
(n4*10+n1)*(n3*10+n2)==num )
{
return true;
}
else
{
return false;
}
}
public static void main(String[] args)
{
for(int i=1000;i<10000;i++)
{
if(isVampire(i))
{
System.out.println(i);
}
}
}
}
标签:param private print main public author 允许 java编程 ==
原文地址:http://www.cnblogs.com/Shockang/p/6555993.html