Dim i As Integer, j As Integer Dim G As Integer '公鸡 Dim M As Integer '母鸡 Dim X As Integer '小鸡 Dim Remain As IntegerFor i = 20 To 0 Step -1 M = i Remain = 100 - M * 5 G = Int(Remain / 3) X = (Remain Mod 3) * 3 Do While M + G + X < 100 And G >= 0 G = G - 1 X = X + 9 Loop If M + G + X = 100 And G >= 0 Then Debug.Print G; M; X Debug.Print G * 3 + M * 5 + X / 3 ' Exit Sub End If Next vb写的结果是: 4 12 84 100 11 8 81 100 18 4 78 100 25 0 75 100
有:
x+y+z =100;
3x+5y+z/3=100
0=<x<34
0=<y<20
0=<z<100
用一个三重循环
for(int i=0;i<100;i+=3) {
for(int j=0;j<100-i;j++) {
k=100-j-i;
if(i/3+j*3+k*5==100) {
System.out.print("Xiao:"+i+"Gong:"+j+"Mu:"+k);
}
}
}
Dim G As Integer '公鸡
Dim M As Integer '母鸡
Dim X As Integer '小鸡
Dim Remain As IntegerFor i = 20 To 0 Step -1
M = i
Remain = 100 - M * 5
G = Int(Remain / 3)
X = (Remain Mod 3) * 3
Do While M + G + X < 100 And G >= 0
G = G - 1
X = X + 9
Loop
If M + G + X = 100 And G >= 0 Then
Debug.Print G; M; X
Debug.Print G * 3 + M * 5 + X / 3
' Exit Sub
End If
Next
vb写的结果是:
4 12 84
100
11 8 81
100
18 4 78
100
25 0 75
100