Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,30 @@
|
|||
-- 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}
|
||||
|
|
@ -0,0 +1 @@
|
|||
{242, 13398445413854501}
|
||||
Loading…
Add table
Add a link
Reference in a new issue