題目:打印出所有的 "水仙花數 ",所謂 "水仙花數 "是指一個三位數,
其各位數字立方和等於該數本身。例如:153是一個 "水仙花數 ",
因為153=1的三次方+5的三次方+3的三次方。
程序分析:
- 利用for循環控制100-999個數,每個數分解出個位,十位,百位。
- 將三個數的立方相加與原數字進行比較
- 如果相等,則為水仙花數; 如果不相等, 則不是水仙花數
// 153 = 1*1*1 + 5*5*5 + 3*3*3
public class 第三題水仙花數 { public static void main(String[] args) { generate(); } public static void generate() { for(int i = 101; i < 1000; i++) { int sum = 0; //裝水仙花數的和
int k = i; while(k > 0) { int temp = k % 10; sum += (int)Math.pow(temp, 3); k /= 10; } if(sum == i) { System.out.println(sum); } } } }