代碼:
/* * 需求:在控制台輸出所有的”水仙花數” * * 分析: * 什么是水仙花數呢? * 所謂的水仙花數是指一個三位數,其各位數字的立方和等於該數本身。 * 舉例:153就是一個水仙花數。 * 153 = 1*1*1 + 5*5*5 + 3*3*3 * * A:三位數其實就告訴了我們水仙花數的范圍 * 100-999 * B:如何獲取一個數據的每一個位上的數呢? * 舉例:我有一個數據153,請問如何獲取到個位,十位,百位 * 個位:153%10 = 3; * 十位:153/10%10 = 5; * 百位:153/10/10%10 = 1; * 千位:... * 萬位:... * C:讓每個位上的立方和相加,並和該數據進行比較,如果相等,就說明該數據是水仙花數,在控制台輸出 */ public class ForTest { public static void main(String[] args) { //通過循環獲取到每一個三位數 for(int x=100; x<1000; x++) { //獲取個位,十位,百位 int ge = x%10; int shi = x/10%10; int bai = x/10/10%10; //讓每個位上的立方和相加,並和該數據進行比較,如果相等,就說明該數據是水仙花數,在控制台輸出 if((ge*ge*ge+shi*shi*shi+bai*bai*bai) == x) { System.out.println(x); } } } }
結果:

