我正在尝试在 Delphi/Pascal 中创建一个更改程序。我有 0.05 美元、0.10 美元、0.20 美元、0.50 美元、1.00 美元和 2.00 美元的值,以及未知金额 x。我需要能够给出构成 x 数量的每个面额的硬币数量。无限数量的任何面额的硬币,那一点都没关系。
我已经尝试了 5 天,但对于我的一生,我没有什么可证明的。我试过动态数组,我试过for
(array) do
,但它对我不起作用。如果你能让我走上正轨,那就太好了!
更新:
好的,我已经解决了,但是现在我遇到了一些我无法弄清楚的问题,这首先是问题的一部分。我不断收到它不喜欢我的“硬币”的问题。我尝试将其设置为数组,但它不喜欢那样,我尝试将其设置为常量数组,然后它不喜欢那样,我什至尝试将其设置为集合,但不起作用。这应该有效,但我错过了一些东西。任何想法都会很棒!
var
Form1: TForm1;
i : integer;
change : integer;
coins : double;
coinage : integer;
begin
coins := (0.05, 0.10, 0.20, 0.50, 1.00, 2.00);
change := 4.00;
while change > 0 do
coinage := trunc(change/coins);
change := change-coinage*coins;
i := change - 1;
while change>=1 do
begin
coinage := 0;
i := coinage-1;
end;
end;