VB编程求这样的四个数

来源:百度知道 编辑:UC知道 时间:2024/06/16 20:46:20
已知a,b,c,d四个整数
要求就是 (a*c)/(b*d) 接近1.221472这个数
20<=a<=99 ; 20<=b<=99 ; 21<=c<=100;21<=d<=100;且a<c;b<d
如果存在则请输出结果a,b,c,d

Private Sub Form_Click()
Print " A", " B", " C", " D"
For A = 20 To 99
For b = 20 To 99
For c = A + 1 To 100
For d = b + 1 To 100
If Round(A * c / b / d, 6) = 1.221472 Then
Print A, b, c, d
End If

Next
Next
Next
Next
Print "Over"
End Sub

说明,计算时间有点长,可能要个10来秒钟左右,看你机器配置了
答案有4组值

画一个Label1,
Private Sub Command1_Click()
Dim arr(3) As Integer
arr(0) = 20
arr(1) = 20
arr(2) = 21
arr(3) = 21
m = Abs(20 * 20 / 21 / 21 - 1.221472)
For a = 20 To 99
For b = 20 To 99
For c = a + 1 To 100
For d = b + 1 To 100
n = Abs(a * c / b / d - 1.221472)
If n < m Then
m = n
arr(0) = a
arr(1) = b
arr(2) = c
a