在VB6.0中使用VB求出水仙花数

水仙花数,也被称为阿姆斯特朗数,是指一个 n 位数,其各个位上的数字的 n 次幂之和等于这个数本身。例如,153 就是一个水仙花数,因为 1^3 + 5^3 + 3^3 = 153。

当然,用VB求水仙花数有两种方法:

第一种:使用mod取余法+for循环

关键知识点:

a = i \ 100 Mod 10   '求百位数
a = i \ 10 Mod 10    '求十位数
a = i \ 1 Mod 10     '求个位数

开始实践:

Dim a, b As Integer

Private Sub Command1_Click()
Do
    a = Val(InputBox("请输入大于0的3位开始数", "提示"))
    If a > 99 And a < 1000 Then Exit Do
Loop
Do
    b = Val(InputBox("请输入大于0并且大于开始数的3位结束数", "提示"))
    If b > 99 And b > a And b < 1000 Then Exit Do
Loop
End Sub

Private Sub Command2_Click()
For i = a To b
    x = i \ 100 Mod 10
    y = i \ 10 Mod 10
    z = i \ 1 Mod 10
    If x ^ 3 + y ^ 3 + z ^ 3 = i Then
        Print "找出一个百位为" & x & "十位为" & y & "各位为" & z & "的数" & i
    End If
Next i
End Sub

第二种:使用mid函数+for循环

关键知识点:

 x = Mid(i, 1, 1)   '从做左向右第1位开始取1位数字
Dim a, b As Integer

Private Sub Command1_Click()
Do
    a = Val(InputBox("请输入大于0的3位开始数", "提示"))
    If a > 99 And a < 1000 Then Exit Do
Loop
Do
    b = Val(InputBox("请输入大于0并且大于开始数的3位结束数", "提示"))
    If b > 99 And b > a And b < 1000 Then Exit Do
Loop
End Sub

Private Sub Command2_Click()
For i = a To b
    x = Mid(i, 1, 1)
    y = Mid(i, 2, 1)
    z = Mid(i, 3, 1)
    If x ^ 3 + y ^ 3 + z ^ 3 = i Then
        Print "找出一个百位为" & x & "十位为" & y & "各位为" & z & "的数" & i
    End If
Next i
End Sub

运行结束后我们能发现,两串代码在3位数中得出的结果都是:

153,370,371,407
© 版权声明
THE END
支持我嘛~
点赞2 分享
碎语词话 共2条

请登录后发表评论

    • 头像小眠鱼0
    • 头像Not the System0