Private Sub Command3_Click()
Dim a%, b%, c%, d%
For a = 0 To 9
For b = 0 To 9
If b <> a Then
For c = 0 To 9
If c <> b Then
For d = 0 To 9
If d <> c And (a * 1000 + b * 100 + c * 10 + d) - (c * 100 + d * 10 + c) = a * 100 + b * 10 + c Then
Print "a="; a
Print "b="; b
Print "c="; c
Print "d="; d
End If
Next d
End If
Next c
End If
Next b
Next a
End Sub
结果是 1 0 9 8
你的程序之所以没结果,是因为你没有把0考虑进来,同时还要考虑到abcd四个数要互相不相等的情况
补充一下,那个表达式可以简化为
If d <> c And a * 900 + b * 90 - c * 92 - d * 9 = 0 Then
这样就不会显得很长
你的这个条件:
If (a * 1000 + b * 100 + c * 10 + d) - (c * 100 + d * 10 + c) = (a * 100 + b * 10 + c) Then
永远也不会成立,当然不会有输出了。
不然你将(a * 1000 + b * 100 + c * 10 + d) - (c * 100 + d * 10 + c)和(a * 100 + b * 10 + c)存储在一个文本文件中看看能不能相等。
你忽略了0
1098
然后显示那块要显示在立即窗口需要把print变成Debug.Print
FOR循环应该从0到9吧,再试试吧,除了0000,还有一个结果1098。