Daniele Fucini 3503357703
Add comments
Added comments to all the python solutions implemented so far.
2019-09-26 15:57:04 +02:00

45 lines
1.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/python3
# 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?
from timeit import default_timer
# Simple recursive function that tries every combination.
def count(coins, value, n, i):
for j in range(i, 8):
value = value + coins[j]
if value == 200:
return n + 1
elif value > 200:
return n
else:
n = count(coins, value, n, j)
value = value - coins[j]
return n
def main():
start = default_timer()
coins = [1, 2, 5, 10, 20, 50, 100, 200]
n = count(coins, 0, 0, 0)
end = default_timer()
print('Project Euler, Problem 31')
print('Answer: {}'.format(n))
print('Elapsed time: {:.9f} seconds'.format(end - start))
if __name__ == '__main__':
main()