Number)也叫pluperfect。
數字的
不變的,
PPDI)、自戀數、自我力量數、阿姆斯特朗數或阿姆斯特朗數(阿姆斯特朗
$ number),水仙花的數量指的是壹朵
三
位數,它的每壹位的位數
三次冪之和等於自身(例如:1 ^ 3
+
5^3+
3^3
=
153)。
2.示例:查找100到100,000範圍內的所有水仙花。
思維分析:
1,整體框架
用for遍歷指定區間,確定當前循環變量I是否為水仙花的數量;如果是,則輸出到控制臺;問題細分為:判斷壹個自然數I是否為水仙花數,具體過程在步驟2中給出。
2.子框架:決策過程
大致分為兩步:
2.1,準備參數
根據I,計算I的總位數d(digit);總和;I中每個數的d次方;
2.2.判斷結果
比較sum和I值,將結果發送到步驟1;
這時問題進壹步細化為:計算總位數d和各位數d的冪之和,具體結果分別由步驟3和4給出;
3.d的計算
將n除以10,商被截斷取整:n/=10,然後放入while語句,統計商變成0的總次數,+1的次數為d;
4.總和的計算
根據定義,我們只需要用for循環得到自然數n的每個數位的值,然後用sum累加每個數位的d次冪。
特定代碼:
運行結果:
擴展數據:
用C語言編程分析水仙花號的實例
1,問題描述
輸出所有的“水仙花號”。所謂“水仙花數”,是指三位數,其立方和等於數字本身。比如153是“水仙花號”因為:153。
=
13 +
53 +
33。
2.問題分析
根據“水仙花數”的定義,判斷壹個數是不是“水仙花數”,最重要的是把給定的三位數的單位、第十位和第壹百位分開,求立方和(設為S)。如果S等於給定的三位數,
三位數是“水仙花的數量”,否則,就不是。
3.算法設計
“水仙號”是指滿足壹定條件的三位數。根據該信息,整數值的範圍可以確定如下
100?999。相應的循環條件如下:
4.代碼描述:
n除以100得到數hun其中n以百為單位;將(n-i*100)除以10(或者先將n除以10,然後取模10 n/10%10)得到數字十;其中n在第十位;拿剩下的;er的n到10,得到單位為n的數ind求這三個數的立方和是否等於自身,如果等於,這個數就是水仙花的個數。
拆分每個位置的數值有很多算法,根據不同的情況選擇不同的算法(對於同壹個問題,不同算法的效率有時是不壹樣的)。
以下是完整的代碼:
運行結果:
結果
是:153
370
371
407
參考資料:
搜狗百科-水仙號