阿姆斯壯數:是指該數(n位數)與該數之各位數的n次方和相等,則此數即為阿姆斯壯數。
如「8208」即為阿姆斯壯數:8208為四位數,而各位數的四次方和「84+24+04+84」正好為「8208」,因此8208是一個阿姆斯壯數。
原理是這樣
可以幫我寫一個阿姆斯壯數的程式嗎
2007-02-08 05:57:35 · 3 個解答 · 發問者 ? 1 in 電腦與網際網路 ➔ 程式設計
'幫亡靈兄改一下bug,不能發表意見只好用回答了
圖片參考:http://tw.yimg.com/i/tw/blog/smiley/36.gif
Private Sub Command1_Click()
Dim I%, N&, S&
N = Abs(Int(Val(InputBox("請輸入:", "", 8208))))
For I = 1 To Len(CStr(N))
S = S + Mid(N, I, 1) ^ Len(CStr(N))
Next
MsgBox IIf(S = N, "", "不") & "是阿姆斯壯數"
End Sub
2007-02-08 17:32:16 補充:
亡靈兄您別太自責,這情形每個人都會發生低....
此法應該可改成
S=N
For I = 1 To Len(CStr(N))
S = S - Mid(N, I, 1) ^ Len(CStr(N))
If S < 0 Then Exit For
Next
If S=0 Then Yes Else No
2007-02-08 17:35:48 補充:
這樣速度會比較快吧?
2007-02-08 08:50:08 · answer #1 · answered by W.J.S. 7 · 0⤊ 0⤋
到下面的網址看看吧
▶▶http://*****
2014-07-03 12:27:23 · answer #2 · answered by Anonymous · 0⤊ 0⤋
Private Sub Command1_Click()
Dim I%, InN&, SumN%
InN = InputBox("請輸入:")
For I = 1 To Len(InN)
SumN = SumN + Val(Mid(InN, I, 1)) ^ 4
Next I
MsgBox IIf(SumN = InN, "", "不") & "是阿姆斯壯數"
End Sub
2007-02-08 13:12:48 補充:
InN宣告成長整數,SumN只宣告成整數好像怪怪的..
更正 Dim SumN&
2007-02-08 14:57:26 補充:
嗚~~~又是bug~~~(懊惱的叩首中~~~~Orz)
叩.叩.叩.叩.叩.叩.叩.叩.叩.叩.叩.叩.叩.叩.叩.叩.叩.叩.叩.叩.叩.
請把最佳解給真正好的答案=WJS大的答案吧...
我不想明明是爛答案,卻為了最佳解和採用率而不擇手段
2007-02-09 11:48:21 補充:
不愧是WJS大師,總是可以想出比較好的方法...
2007-02-08 08:04:05 · answer #3 · answered by 幽靈 5 · 0⤊ 0⤋