题目

找出 100~999 之间的水仙花数

思路

本题在 100~999 中找水仙花数:各位数字立方和等于它本身。 对每个三位数,用 /100、/10%10、%10 取出百、十、个位 a,b,c,判断 a³+b³+c³ 是否等于原数,相等则输出。

解题分析

三位数enum 100~999,拆百十个位算立方和。剪枝:若只判断单个数,直接算;若找全部,暴力扫描范围即可。

完整程序

import java.io.*;

public class Main {
    public static void main(String[] args) {
        for (int n = 100; n <= 999; n++) {
            int a = n / 100, b = n / 10 % 10, c = n % 10;
            if (a*a*a + b*b*b + c*c*c == n) System.out.println(n);
        }
    }
}

运行示例

输出:

153
370
371
407