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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java编程思想第4版第四章练习10相关的知识,希望对你有一定的参考价值。

题目:吸血鬼数字是指位数为偶数的数字,可以由一对数字相乘而得到,而这对数字各包含乘积的一半位数的数字,其中从最初的数字中选取的数字可以任意排序。以两个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的主要内容,如果未能解决你的问题,请参考以下文章

Java编程思想第四版 *第五章 个人练习

Java编程思想第四版勘误

Java编程思想第四版(完整中文高清版)pdf

java编程思想第四版第三章要点习题

Java编程思想第四版读书笔记——第十三章 字符串

java编程思想第四版第9章