水仙花 VB 问题

来源:百度知道 编辑:UC知道 时间:2024/06/30 10:50:19
Private Sub Form_Click()
Dim I As Integer, a As Integer, b As Integer, c As Integer
I = 100
Do While I < 1000
a = I \ 100
b = I \ 10 Mod 10
c = I Mod 10
If a * a * a + b * b * b + c * c * c = I Then Print I
I = I + 1
Loop
End Sub

我是初中生刚学VB希望哪位大虾 给详解下!~

Private Sub Form_Click() ‘窗体的单击事件
Dim I As Integer, a As Integer, b As Integer, c As Integer ’声明3个变量位整型,分别位i,a,b
I = 100 ‘给i赋值为100
Do While I < 1000 ’循环,符合i<1000就继续循环,执行下面的循环体
a = I \ 100 ‘i整除100赋值给a
b = I \ 10 Mod 10 ’(i整除10)和10求模赋值给b
c = I Mod 10 ‘ i和10求模
If a * a * a + b * b * b + c * c * c = I Then Print I ’如果a*a*a+b*b*b+c*c*c=i时打印i
I = I + 1 ‘每次循环后,i都加1赋值给i
Loop ’结束循环
End Sub

a,b,c变量分别放着这个三位数的每一位数字,a是百位的,b是十位的,c是个位的。
水仙花数的成立就是每一位数的立方和加起来等于这个三位数就是水仙花数啦。
所以用那个条件来判断。
你这个程序是求100到1000之内的所有水仙花数。

这个程序中
a = I \ 100
b = I \ 10 Mod 10
c = I Mod 10
是相当与求一个 3位数的 百位 十位和个位 分别是多少
If a * a * a + b * b * b + c * c * c = I Then Print I
这个意思是 如果 百位 十位和个位 的 立方和 等于I 的话 则输出 I
I = I + 1 是 依次 递加I 如 从一开的100变成101~~ 到1001时 结素循环
这样 就可以得到 三位数中的 水仙花
呵呵 我也是 初学者 刚自学不久的 有不对的地方 还请多指教~