基于Delphi 7的百鸡问题求解

百鸡问题求解

问题描述: 假设公鸡价格为每只5元,母鸡价格为每只3元,小鸡价格为3只1元。现需用100元购买100只鸡,请使用Delphi 7编程列出所有可行的购鸡方案。

算法设计:

采用穷举法,通过三重循环嵌套遍历所有可能的公鸡、母鸡和小鸡数量组合。在循环过程中,判断每种组合是否满足以下条件:

  • 公鸡数量、母鸡数量和小鸡数量之和等于100
  • 公鸡总价、母鸡总价和小鸡总价之和等于100元

若满足上述条件,则输出该组合作为一种可行的购鸡方案。

代码实现:

program ChickenProblem;

uses
  SysUtils;

var
  i, j, k: Integer; 

begin
  for i := 0 to 20 do begin  // 公鸡数量最大为 20 只
    for j := 0 to 33 do begin // 母鸡数量最大为 33 只
      k := 100 - i - j; // 小鸡数量由总只数和公鸡、母鸡数量决定
      if (k >= 0) and (k mod 3 = 0) then begin // 小鸡数量必须为非负数且为3的倍数
        if (i * 5 + j * 3 + k div 3 = 100) then begin // 判断总价是否为100元
          WriteLn('公鸡: ', i, ' 只,母鸡: ', j, ' 只,小鸡: ', k, ' 只');
        end;
      end;
    end;
  end;
  ReadLn;
end.

程序运行结果:

程序运行后,将在控制台输出所有满足条件的购鸡方案。

rar 文件大小:168.46KB