题目要求:如题。
解题思路:
- 首先设一个函数 功能就是 判断输入的数是否是水仙花数
- 套一个循环在这个函数上 功能是遍历所有的三位数
- 进入函数编写 与之前写的代码类似 就是做出小改动 比如返回值的巧妙取舍
- 返回0 不是,返回i则是水仙花数 并输出
public class E201_06_01_输出所有水仙花数 { public static void main(String[] args) { for (int i = 100; i <=999 ; i++) { if (printNum(i) != 0) { //输出水仙花数 System.out.printf("水仙花数:%d\n",printNum(i)); } } } /** * 判断传进来的数是否是 水仙花数 * @param i 100-999的数 * @return i-是水仙花数 / 0-不是 */ private static int printNum(int i) { int firstNum = i / 100; int secondNum = i / 10 % 10; int thirdNum = i % 10; if (firstNum * firstNum * firstNum + secondNum * secondNum * secondNum + thirdNum * thirdNum * thirdNum == i){ return i; } return 0; } }
水仙花数:153
水仙花数:370
水仙花数:371
水仙花数:407