In England the currency is made up of pound, £, and pence, p, and there are eight coins in general circulation:
1p, 2p, 5p, 10p, 20p, 50p, £1 (100p) and £2 (200p).
It is possible to make £2 in the following way:
1×£1 + 1×50p + 2×20p + 1×5p + 1×2p + 3×1p
How many different ways can £2 be made using any number of coins?
main = print $ length $ coinSum 200
coinSum n = [ [oneP, twoP, fiveP, tenP, twentyP, fiftyP, oneL, twoL] |
oneP <- [0 .. n],
twoP <- [0, 2 .. n - oneP],
fiveP <- [0, 5 .. n - (oneP + twoP)],
tenP <- [0, 10 .. n - (oneP + twoP + fiveP)],
twentyP <- [0, 20 .. n - (oneP + twoP + fiveP + tenP)],
fiftyP <- [0, 50 .. n - (oneP + twoP + fiveP + tenP + twentyP)],
oneL <- [0, 100 .. n - (oneP + twoP + fiveP + tenP + twentyP + fiftyP)],
twoL <- [0, 200 .. n - (oneP + twoP + fiveP + tenP + twentyP + fiftyP + oneL)],
oneP + twoP + fiveP + tenP + twentyP + fiftyP + oneL + twoL == 200]
*Main> main
73682
댓글 없음:
댓글 쓰기