黑马程序员技术交流社区

标题: 求水仙花数 三重嵌套实现 [打印本页]

作者: oooohnick    时间: 2015-7-19 19:49
标题: 求水仙花数 三重嵌套实现
本帖最后由 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);
                                        }
                                }
                        }
                }
      }
}









欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2