美文网首页
水仙花问题 -- Java描述

水仙花问题 -- Java描述

作者: 希希里之海 | 来源:发表于2019-03-10 12:45 被阅读0次

    水仙花问题 -- Java描述

    题目:

    编程求出 100~999 的所有的水仙花数(所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身)。

    举例:

    153是“水仙花数”,因为:153 = 1^3 + 5^3 + 3^3。


    思路:

    题目中说求出 100~999 的所有“水仙花数”,其实如果没有给出 100~999 的限定,“水仙花数”还是求这个范围,因为水仙花数要满足“三位数”,所以就只有 100~999 的范围了。

    所以我们可以把给出的三位数的个位、十位、百位分别拆分,并求其立方和(设为 n),若 n 与给出的三位数相等, 三位数为“水仙花数”,反之,则不是。

    代码如下:

    public class Test {
        public static void main(String[] args) {
            for (int n = 100; n < 1000; n++) {   // 整数的取值范围
                int i = n / 100;                 // 取得百位数
                int j = n / 10 % 10;             // 取得十位数,也可以写成 int j = (n-i*100)/10;
                int k = n % 10;                  // 取得个位数, 也可以写成 int k = n-i*100-j*10
                if (n == i*i*i + j*j*j + k*k*k) {           //各位的立方和是否和原数n相等,相等则打印水仙花数
                    System.out.println("水仙花数为" + n);    
                }
            }
        }
    }
    

    输出结果如下:

    image.png

    相关文章

      网友评论

          本文标题:水仙花问题 -- Java描述

          本文链接:https://www.haomeiwen.com/subject/jieupqtx.html