package com.itheima;
public class Test012
{
/**
* 需求:在控制台输出所有的”水仙花数”
* 所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。
* 举例:153就是一个水仙花数。
* 153 = 1*1*1 + 5*5*5 + 3*3*3 = 1 + 125 + 27 = 153
*
* 思路:1、分别求出这个数百位、十位、个位上的数字
* 2、判断这个数是否与百位、十位、个位上的数字的三次幂之和相等。
* @param args
*/
public static void main(String[] args)
{
//定义三个参数,存放百位、十位、个位上的数字
int hundredsPlace, tensPlace, onesPlace;
for(int num = 100; num < 1000; num ++)
{
//得到这个三位数百位、十位、个位上的值
hundredsPlace = num/100;
tensPlace = (num%100)/10;
onesPlace = num%10;
//判断这个数是否与百位、十位、个位上的数字的三次幂之和相等。
if(num == Math.pow(hundredsPlace, 3) + Math.pow(tensPlace, 3) + Math.pow(onesPlace, 3))
{
System.out.println(num);
System.out.println(hundredsPlace + "*" + hundredsPlace + "*" + hundredsPlace + "+" +
tensPlace + "*" + tensPlace + "*" + tensPlace + "+" +
onesPlace + "*" + onesPlace + "*" + onesPlace + "=");
System.out.println(hundredsPlace*hundredsPlace*hundredsPlace + "+" + tensPlace*tensPlace*tensPlace + "+" + onesPlace*onesPlace*onesPlace + "=" +
(hundredsPlace*hundredsPlace*hundredsPlace+tensPlace*tensPlace*tensPlace+onesPlace*onesPlace*onesPlace));
}
}
}
}
结果:
153
1*1*1+5*5*5+3*3*3=
1+125+27=153
370
3*3*3+7*7*7+0*0*0=
27+343+0=370
371
3*3*3+7*7*7+1*1*1=
27+343+1=371
407
4*4*4+0*0*0+7*7*7=
64+0+343=407
|