Count the coins: Difference between revisions

Content added Content deleted
(+Maple)
Line 2,143: Line 2,143:
ways(100000,[1,5,10,25,50,100]);
ways(100000,[1,5,10,25,50,100]);
# 13398445413854501</lang>
# 13398445413854501</lang>

A faster implementation.

<lang maple>ways2:=proc(amount,purse)
local a,n,k;
a:=Array(1..amount,0);
for k in purse do
for n from k to amount do
if n=k then
a[n]++;
else
a[n]+=a[n-k]
fi
od
od;
a[-1]
end:

ways2(100,[1,5,10,25]);
# 242

ways2(1000,[1,5,10,25,50,100]);
# 2103596

ways2(10000,[1,5,10,25,50,100]);
# 139946140451

ways2(100000,[1,5,10,25,50,100]);
# 13398445413854501

ways2(1000000,[1,5,10,25,50,100]);
# 1333983445341383545001</lang>


=={{header|Mathematica}} / {{header|Wolfram Language}}==
=={{header|Mathematica}} / {{header|Wolfram Language}}==