根据hellbeast的思路随便写了一个,没做任何优化啊
procedure TForm1.Button1Click(Sender: TObject);
var
i, j, k, a: integer;
n1, n2, n3: integer;
begin
Memo1.Clear;
n1 := 1000 div 75;
n2 := 1000 div 55;
n3 := 1000 div 88;
for i := 0 to n1 do
for j := 0 to n2 do
for k := 0 to n3 do
begin
a := 1000 - 75 * i - 55 * j - 88 * k;
if (a <= 10) and (a >= 0) then
Memo1.Lines.Add(Format('%d根75mm, %d根55mm, %d根88mm, 剩余%dmm', [i, j, k, a]));
end;
end;
运行结果:
0根75mm, 2根55mm, 10根88mm, 剩余10mm
0根75mm, 10根55mm, 5根88mm, 剩余10mm
0根75mm, 18根55mm, 0根88mm, 剩余10mm
1根75mm, 4根55mm, 8根88mm, 剩余1mm
1根75mm, 12根55mm, 3根88mm, 剩余1mm
2根75mm, 1根55mm, 9根88mm, 剩余3mm
2根75mm, 9根55mm, 4根88mm, 剩余3mm
3根75mm, 6根55mm, 5根88mm, 剩余5mm
3根75mm, 14根55mm, 0根88mm, 剩余5mm
4根75mm, 3根55mm, 6根88mm, 剩余7mm
4根75mm, 11根55mm, 1根88mm, 剩余7mm
5根75mm, 0根55mm, 7根88mm, 剩余9mm
5根75mm, 8根55mm, 2根88mm, 剩余9mm
6根75mm, 2根55mm, 5根88mm, 剩余0mm
6根75mm, 10根55mm, 0根88mm, 剩余0mm
7根75mm, 7根55mm, 1根88mm, 剩余2mm
8根75mm, 4根55mm, 2根88mm, 剩余4mm
9根75mm, 1根55mm, 3根88mm, 剩余6mm
11根75mm, 3根55mm, 0根88mm, 剩余10mm