假如你是一家瓷器供应商,客户在你那买盘子,一次性拿的盘子数目从1个到1000个不等,要求你拿出的盘子是事先放进箱子,包装好的。请问你的包装箱盘子数目的最优组合数是多少?例如:1,22,44等(不是这个数列)
举个例子:我是客户去你那拿盘子,我要187个盘子,你不可能给我187个箱子吧;我要999个箱子,你不可能给我999个箱子吧!而是你事先已按最优的组合方式把盘子放进各个箱子中了,然后很方便的给了我。
用一种计算机语言把这过程实现。

解决方案 »

  1.   

    //参数iDishes:购买盘子的数量,iSpecs:箱子规格(一个箱子可以放几个盘自)
    //返回值为箱子的数量
    function NeedBoxes(iDishes,iSpecs: Integer):Integer;
    begin
      if iDishes <= 0 then
      begin
        Result := 0;
        Exit;
      end
      if iSpecs <=0 then
      begin
        Result := -1;
        Exit;      
      end;
      if (iDishes mod iSpecs = 0) then
        Result := iDishes div iSpecs
      else
        Result := iDishes div iSpecs + 1;
    end;