根据水仙花数的定义,求解就好。
package introduction; import java.util.Scanner; /** * Created by yangyuan on 2017/12/8. */ public class Problem2010 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int m, n; int[] all = new int[999 - 100 + 1]; while (scanner.hasNext()) { m = scanner.nextInt(); n = scanner.nextInt(); int index = 0; for (int i = m; i <= n; i++) if (daffodil(i)) all[index++] = i; if (index == 0) System.out.println("no"); else { for (int i = 0; i < index; i++) { System.out.print(all[i]); if (i != index - 1) System.out.print(" "); } System.out.println(); } } } public static boolean daffodil(final int x) { int sum = x % 10; sum = sum * sum * sum; int y = x; while ((y /= 10) != 0) { int a = y % 10; sum += a * a * a; } if (sum == x) return true; return false; } }