05.05 C語言經典算法:打印“水仙花”數,你知道什麼是水仙花數嗎?

題目

題目:打印出所有的“水仙花數”,所謂“水仙花數”是指一個三位數,其各位

數字立方和等於該數本身。例如:153是一個“水仙花數”,因為153=1的三次方

+5的三次方+3的三次方。

C語言經典算法:打印“水仙花”數,你知道什麼是水仙花數嗎?

水仙花:和水仙花數並沒有什麼關係

小知識

水仙花數只是自冪數的一種,嚴格來說3位數的3次冪數才稱為水仙花數。

其他位數的自冪數名字:

一位自冪數:獨身數

兩位自冪數:沒有

三位自冪數:水仙花數

四位自冪數:四葉玫瑰數

五位自冪數:五角星數

六位自冪數:六合數

七位自冪數:北斗七星數

八位自冪數:八仙數

九位自冪數:九九重陽數

十位自冪數:十全十美數

C語言經典算法:打印“水仙花”數,你知道什麼是水仙花數嗎?

常見水仙花數

三位的水仙花數共有4個:153,370,371,407;

四位的四葉玫瑰數共有3個:1634,8208,9474;

五位的五角星數共有3個:54748,92727,93084;

六位的六合數只有1個:548834;

七位的北斗七星數共有4個:1741725,4210818,9800817,9926315;

八位的八仙花數共有3個:24678050,24678051,88593477

......

題目分析

因為我們只求三位數的水仙花數,所以關鍵點就是求出一個三位數的個位、十位、百位。利用for循環控制100-999個數,每個數分解出個位,十位,百位。

比如一個數153,個位可以用取模:153%10=3得到;

十位可以先除10再對10取模:153/10%10=5;

百位直接除100即可:

153/100=1。

代碼如下:

C語言經典算法:打印“水仙花”數,你知道什麼是水仙花數嗎?

好了,歡迎大家提供更好的方法~~~


分享到:


相關文章: