1. 假如有100美分,兑换成任意一组硬币的所有唯一方式。
# 输出 Python 的每个字母
import _thread
from time import sleep,ctime
def squares(n=10):
for i in range(1,n+1):
print('Generating squares from 1 to %d' %(n**2))
yield i ** 2
def make_change(amount,coins=[1,5,10,25],hand=None):
hand = [] if hand is None else hand
if amount == 0:
yield hand
for coin in coins:
#确保我们给出的硬币没有超过总额,且组合是唯一的
if coin > amount or (len(hand)> 0 and hand[-1]<coin):
continue
for result in make_change(amount - coin,coins=coins,
hand=hand+ [coin]):
yield result
def main():
for way in make_change(100,coins=[10,25,50]):
print(way)
if __name__ == '__main__':
main()