本帖最后由 oooohnick 于 2015-7-19 19:53 编辑
求水仙花数是一道比较经典的编程题,其定义是:水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)
一般的解题思想是 通过取模获得各个位数 然后带入表达式计算
我在思考这个问题时,着重在考虑如何使各个位数分别实现递增,达到遍历的目的,于是想出了如下的三重嵌套循环class Day04E05
{
public static void main(String[] args)
{
//x是百位,遍历次数会最少,z是十位,遍历次数会最多
for (int x=1; x<=9; x++)
{
for (int y=0; y<=9; y++)
{
for (int z=0; z<=9; z++)
{
int num = x*100+y*10+z;
if ((num==x*x*x+y*y*y+z*z*z))
{
System.out.println(num);
}
}
}
}
}
}
|
|