来帮忙看看这段程序

来源:百度知道 编辑:UC知道 时间:2024/06/25 19:23:07
要解决的问题是:
每一个汉字代表一个数字,不同的汉字代表不同的数字,当它们各代表什么数字时,算式成立?
红花映绿叶*春=叶绿映花红

程序如下:

Dim a, b, c, d, e, f As Integer
Dim i, j As Single
For a = 0 To 9
For b = 0 To 9
For c = 0 To 9
For d = 0 To 9
For e = 0 To 9
For f = 1 To 9
i = 10000 * a + 1000 * b + 100 * c + 10 * d + e
j = 10000 * e + 1000 * d + 100 * c + 10 * b + a
If i * f = j And (a - b) * (a - c) * (a - d) * (a - e) * (a - f) * (b - c) * (b - d) * (b - e) * (b - f) * (c - d) * (c - e) * (c - f) * (d - e) * (d - f) * (e - f) <> 0 Then
TextBox1.Text = i
Else
TextBox1.Text = 45
End If
Next
Next
Next
Next
Next
Next

运行后显示"45"也

vb6 的integer是16位,也就是 -32768~32767 之内,超过就会溢出
把i和j定义成long就没问题了
.net以后integer改成32位,可以直接用

Dim a, b, c, d, e, f As Integer
Dim i, j As Single
For a = 0 To 9
For b = 0 To 9
For c = 0 To 9
For d = 0 To 9
For e = 0 To 9
For f = 1 To 9
i = 10000 * a + 1000 * b + 100 * c + 10 * d + e
j = 10000 * e + 1000 * d + 100 * c + 10 * b + a
If i * f = j And (a - b) * (a - c) * (a - d) * (a - e) * (a - f) * (b - c) * (b - d) * (b - e) * (b - f) * (c - d) * (c - e) * (c - f) * (d - e) * (d - f) * (e - f) <> 0 Then
TextBox1.Text = i
Else
TextBox1.Text = 45
End If
Next
Next
Next
Next
Next
Next
改为:
Dim a, b, c, d, e, f As Integer
Dim i, j As Single
For a = 0 To 9
For b = 0 To 9
For c = 0 To 9
For d = 0 To 9
For e = 0 To 9
For f = 1 To 9
i = 10000 * a + 1000 * b + 100 * c + 10 * d + e
j = 10000 * e + 1000