RosettaCodeData/Task/Count-the-coins/PascalABC.NET/count-the-coins.pas

15 lines
371 B
ObjectPascal

##
function changes(amount: integer; coins: array of integer): int64;
begin
var ways: array of int64;
setLength(ways, amount + 1);
ways[0] := 1;
foreach var coin in coins do
foreach var j in coin..amount do
ways[j] += ways[j - coin];
result := ways[amount]
end;
changes(100, |1, 5, 10, 25|).println;
changes(100000, |1, 5, 10, 25, 50, 100|).println;