vb中求1到2000之间阿姆斯特朗数
3个回答
展开全部
用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 的初值和终值即可
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 的初值和终值即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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()
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里面的什么意思
追答
不是求出每一位数的幂和,如果等于原数不就是阿姆斯特朗数了吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询