求n位水仙花數
A.兩個關鍵
1.n位水仙花數的范圍是什么?
n位水仙花數的范圍是[10n-1,10n)
2.如何判斷是否為水仙花數
核心操作:
2-1.如何得到每一位?
A.核心思想
對得到的數進行先取余后取整的循環操作。
B.具體操作
用一變量g來得到將要判斷的值,用變量h來依次存放每一位,g取余后把值賦給變量h,然后g再進行除10運算,如此循環往復,直到h依次得到每一位為止。
2-2.如何將得到的每一位進行n次方?
A.核心思想
調用Math.pow()函數即可(注:Math.pow()函數的返回值是double類型的數據)
B.具體操作
設一個變量t來求和,把操作1的變量h應用Math.pow()函數並把其應用后的值加入到t中,然后循環往復,直到結束該循環。(注:因為水仙花數一般是定義成int類型,所以在賦值運算過程中要把Math.pow()函數得到的值進行強制類型轉換)
B.易錯點分析
1.Math.pow()函數的返回值是double類型,
a.在賦值運算中,若賦給非double類型的值時都必須執行強制類型轉化操作(目的:轉換成相同類型)。
b.在比較運算中,系統會自動執行自動類型轉化操作(轉換方向:級別更高的類型),此時無需執行強制類型轉化操作。
2.用來求和的變量t在每次判斷完(是否是水仙花數)之后都需要歸零。
3.必須用一個新的變量(本題為g)來存放將要判斷的值。
C.代碼以及運行結果截圖
代碼截圖
運行結果截圖
D.所寫程序的優缺點
優點:適用范圍較廣,可以根據用戶的需要來進行鍵盤輸入
缺點;運行所花時間有點長而且數據夠大時運行不了(其程序運行時占的內存空間不小)
E.相關英語詞匯積累
1.水仙花: daffodil; narcissistic;其別名: 自戀數、自冪數或阿姆斯壯數(Armstrong number).
2.數;number;
3.歸零: return to zero。
4.核心思想:core thought.
5.位數: places
6.易錯分析:Easy to fault analysis
7.[計] totalizer 加法計算器;
8.[計] accumulator 蓄電池;[計] 累加器;積聚者;
9.[計] assignment operation賦值運算
10.[計] comparison operation比較運算