A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© oooohnick 中级黑马   /  2015-7-19 19:49  /  280 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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);
                                        }
                                }
                        }
                }
      }
}




0 个回复

您需要登录后才可以回帖 登录 | 加入黑马