vb中求1到2000之间阿姆斯特朗数

 我来答
听不清啊
高粉答主

2015-11-16 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部

 Private Sub command1_click()

   For i = 1 To 2000

      n = 0

      a = i \ 1000

      b = i \ 100 Mod 10

      c = i \ 10 Mod 10

      d = i Mod 10

      If a * a * a * a + b * b * b * b + c * c * c * c + d * d * d * d = i Or a * a * a + b * b * b + c * c * c + d * d * d = i Then Print i

   Next i

End Sub

爱斯爱夫
2018-12-12
知道答主
回答量:1
采纳率:0%
帮助的人:784
展开全部
用vb求 1~10000 间的 阿姆斯特朗数, 10000可为任何正整数' 如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数(也称自幂数),当n=3时称为水仙花数
For i = 1 To 10000
s = 0
L = Len(i)
For j = 1 To L
a = Mid(i, j, 1)
s = s + a ^ L
Next
If i = s Then Print i;
Next
可对任何范围内正整数进行判断,只要改变 循环变量 i 的初值和终值即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
悠悠周郎
2015-11-16 · TA获得超过2572个赞
知道大有可为答主
回答量:3291
采纳率:96%
帮助的人:508万
展开全部
For 自然数 As Integer = 1 To 2000000
Dim 自然数位数 As Integer = 自然数.ToString.Length
Dim 幂 As Integer = 自然数位数
Dim 每一位数 As New List(Of Integer)
Dim 每一位数幂和 As Integer = 0
Dim 自然数字符串 As String = CStr(自然数)

For 自然数位 As Integer = 0 To 自然数位数 - 1
每一位数.Add(自然数字符串.Substring(自然数位, 1))
Next
For Each 每一位数值 As Integer In 每一位数
每一位数幂和 += 每一位数值 ^ 幂
Next
If 每一位数幂和 = 自然数 Then
阿姆斯特朗集合.Add(自然数)
End If
Next
结果框.BeginUpdate()
结果框.DataSource = 阿姆斯特朗集合
结果框.EndUpdate()
更多追问追答
追问
if里面的什么意思
追答
不是求出每一位数的幂和,如果等于原数不就是阿姆斯特朗数了吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式