Count the coins: Difference between revisions
Content added Content deleted
No edit summary |
(Added AppleScript.) |
||
Line 237: | Line 237: | ||
+13398445413854501 |
+13398445413854501 |
||
</pre> |
</pre> |
||
=={{header|AppleScript}}== |
|||
{{trans|Phix}} |
|||
<lang applescript>-- All input values must be integers and multiples of the same monetary unit. |
|||
on countCoins(amount, denominations) |
|||
-- Potentially long list of counters, initialised with 1 (result for amount 0) and 'amount' zeros. |
|||
script o |
|||
property counters : {1} |
|||
end script |
|||
repeat amount times |
|||
set end of o's counters to 0 |
|||
end repeat |
|||
-- Less labour-intensive alternative to the following repeat's c = 1 iteration. |
|||
set coinValue to beginning of denominations |
|||
repeat with n from (coinValue + 1) to (amount + 1) by coinValue |
|||
set item n of o's counters to 1 |
|||
end repeat |
|||
repeat with c from 2 to (count denominations) |
|||
set coinValue to item c of denominations |
|||
repeat with n from (coinValue + 1) to (amount + 1) |
|||
set item n of o's counters to (item n of o's counters) + (item (n - coinValue) of o's counters) |
|||
end repeat |
|||
end repeat |
|||
return end of o's counters |
|||
end countCoins |
|||
-- Task calls: |
|||
set c1 to countCoins(100, {25, 10, 5, 1}) |
|||
set c2 to countCoins(1000 * 100, {100, 50, 25, 10, 5, 1}) |
|||
return {c1, c2}</lang> |
|||
{{output}} |
|||
<lang applescript>{242, 13398445413854501}</lang> |
|||
=={{header|Arturo}}== |
=={{header|Arturo}}== |