把 1/a 拆分成五个不同单位分数的和,并且五个分母之和为最小的VB程序
Private Sub Command1_Click()'把 1/a 拆分成五个不同单位分数的和,并且五个分母之和为最小的程序代码
Dim n, a As Double
n = Val(Text1)
m = Val(38 * n)
a = Val(1 + n)
Do While a >= Val(n) And a <= 5 * n
b = Val(a + 1)
Do While b <= Val(5 * n)
c = Val(b + 1)
Do While c <= Val(8 * n)
d = Val(c + 1)
Do While d <= Val(10 * n)
u = Val(a * b * c * d * n)
v = Val(a * b * c * d - n * (a * b * c + a * b * d + a * c * d + b * c * d))
If Val(v) > 0 Then
f = Val(u / v)
If d < f And Val(u) - Val(v) * Int(Val(u / v)) = 0 Then
k = Val(a + b + c + d + f)
If k <= m Then
m = k
s = "{" & a & "," & b & "," & c & "," & d & "," & f & "}"
s2 = n & " " & m & " " & s & vbCrLf
s3 = s3 + 1
End If
End If
End If
d = Val(d + 1)
Loop
c = Val(c + 1)
Loop
b = Val(b + 1)
Loop
a = Val(a + 1)
Loop
If s3 > 0 Then
Text2 = s2 & "需要比较的解的个数为: " & s3 & "组"
Else
Text2 = "无解"
End If
End Sub
Private Sub Command2_Click()
Text1 = ""
Text2 = ""
Text3 = ""
End Sub






