用Delphi编写一个工资发放的可视化程序,要求根据用户输入的工资金额,计算出钞票张数最少的付款方案?跪求

解决方案 »

  1.   


    procedure TForm2.Button1Click(Sender: TObject);
    const
      MoneyValue: array[0..7] of Real = (0.1, 0.5, 1, 5, 10, 20, 50, 100);
    var
      i: Byte;
      n: integer;
      rSalary: Real;
    begin
      Memo1.Clear;
      rSalary := StrToFloat(Trim(Edit1.Text));
      for i := 7 downto 0 do
      begin
        if rSalary <= 0 then
          Break;
        n := Trunc(rSalary / MoneyValue[i]);
        if (n > 0) then
        begin
          Memo1.Lines.Add(IntToStr(n) + '张' + FloatToStr(MoneyValue[i]));
          rSalary := rSalary - n * MoneyValue[i];
        end;
      end;
    end;