码迷,mamicode.com
首页 > 编程语言 > 详细

Java编程思想第4版第四章练习10

时间:2017-03-15 20:20:36      阅读:196      评论:0      收藏:0      [点我收藏+]

标签: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);
			}
		}
	}

}

  

 

Java编程思想第4版第四章练习10

标签:param   private   print   main   public   author   允许   java编程   ==   

原文地址:http://www.cnblogs.com/Shockang/p/6555993.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!