Private Sub Command1_Click()
Dim i As Double
Dim jAs Double
Dim k As Double
For j = 0 To 100
k = (400 - 2 * j) / 4.5
If InStr(k, ".") <> 0 Then
Else
If j + k <= 100 Then
i = 100 - j - k
If 5 * i + 3 * j + 0.5 * k = 100 Then
MsgBox "发现一个组合,公鸡个数为:" & i & "母鸡的个数为:" & j & "小鸡的数目为:" & k
End If
End If
End If
Next
End Sub
因为i+j+k=100与5 * i + 3 * j + 0.5 * k = 100可以构成一个方程组,但是有3个未知数,这个直接是算不出结果的。可先替换一个,i=100-j-k,把i代入第二个方程式,就只剩下j和k了,变换一下,再化简一下,就成了4.5k+2j=400.再化简 k=(400-2*j)/4.5,因为j不可能大于100,j可能是0到100之间的某个数,所以要建立一个循环.
for j=0 to j=100
......
next
循环时j的值就有了,而且是整数。 通过k=(400-2*j)/4.5,可以得出k的值,因为k可能不是整数,我们不可能买半个母鸡吧!
所以要把k类型声明为double类型,若k不是整数,那么是浮点型的,一定有个"."符合吧,这个组合不能取。 if instr(k,".")<>0 then 不符合,不是整形 else 符合,是整形 然后再求出i的值,若i+j+k=100,那么一定符合要求了!! end if
上面写的很详细,不知道楼主明白了没有!!