水仙花问题 -- Java描述

2019-03-10  本文已影响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
上一篇下一篇

猜你喜欢

热点阅读