Java演算法之「水仙花數」

2021-07-23 15:41:19 字數 690 閱讀 5698

列印出所有的」水仙花數」,所謂」水仙花數」是指乙個三位數,其各位數字立方和等於該數本身。

分析:水仙花數首先是個三位數,即在100-999這個範圍內選出所謂的「水仙花數」,然後各個位數分別進行立方運算,然後再求和,並且等於其本身。

假設乙個水仙花數為i,先將其各個位上的數依次摘出來,然後求平方和,即,i/100=a為百位上的數,(i-ax100)/10=b為十位上的數,(i-ax100-bx10)=c為個位上的數。反映在**上為:

for (int i = 100; i <= 999; i++) 

}

思路一的做法是從整體往區域性推進,知道這個三位數,然後再求出各位數,然後立方求和;還有一種思路是已知各個位數的值,然後求出這個三位數,由區域性到整體,思路正好相反,即,水仙花數是100-999範圍內的數,百位的範圍是1-9,十位的範圍是0-9,個位的範圍是0-9,在**中使用三層巢狀迴圈,依次遍歷完100-999這個範圍內的所有數,然後摘出所謂的水仙花數,反映在**上是這樣的:

for (int i = 1; i <= 9; i++) }}

}

顯然第二種思路並不合常規,而且還顯得麻煩,不如第一種思路那麼順溜,不過,在這裡提供第二種思路的目的是,在寫演算法的時候,有時候一種思路不通的話,換一種角度可能就輕鬆的解決了,^_^~

end

Python入門之 水仙花數

水仙花數 是指乙個三位數,其各位數字立方和等於該數本身 例如 153 1 5 3 則153是乙個水仙花數 首先定義乙個變數num來接收輸入的值 變數num不是唯一的,可以自己設定 num input 請輸入乙個正整數 判斷輸入的值如果不為零則進行運算 if num 0 水仙花數公式 雙星號 是pyt...

C語言經典演算法之水仙花數

問題 列印出100到999所有的水仙花數,所謂水仙花數是指乙個三位數,其各位數字立方和等於該數本身。例如 153是乙個 水仙花數 因為153 1的三次方 5的三次方 3的三次方。方法 利用for迴圈控制100 999個數,每個數分解出個位,十位,百位。include int main int num...

Java水仙花數

要判斷乙個數是否為水仙花數,首先得弄清楚,該數個十百上的數立方相加是否等於本身,如153 1 3 5 3 3 3 第二步要解決的就是,要取到水仙花數個位,十位,百位的數。利用math.pow x,y 函式相加,判斷輸入的值是否為水仙花數。如下 scanner input new scanner sy...