1. 汉诺塔:使用函数递归实现:
# -*- coding: utf-8 -*-
def move(n,a,b,c):
if n==1:
print("%s---%s"%(a,c))
return
else:
move(n-1,a,c,b)#将n-1从a---b
print("%s---%s"%(a,c))#最下面那个从a---c
move(n-1,b,a,c)#把n-1从b----c
count=input("input num of hanoi:")
print("methods:")
move(count,'A','B','C')
2.斐波拉契数列:使用生成器实现:
1, 1, 2, 3, 5, 8, 13, 21, 34, ...
# -*- coding: utf-8 -*-
def fib(max):
count,temp1,temp2=0,0,1
while count < max:
yield temp2
temp1,temp2=temp2,temp1+temp2
count+=1
n=input("please input max:")
print("result:")
for f in fib(n):
print(f)
# -*- coding: utf-8 -*-
def triangles():
L=[1]
while True:
yield L
L.append(0)
L = [L[i - 1] + L[i] for i in range(len(L))]
n=0
for t in triangles():
print(t)
n = n + 1
if n == 10:
break