斐波那契数列
def f(n):
if n == 1 or n == 2:
return 1
else:
return f(n-1) + f(n-2)
print(f(10))
汉诺塔问题
# 统计移动步数,打印每一步移动过程
count = 0
def hanoi(n, src, dst, mid):
global count
# 基例
if n == 1:
print("{}:{}->{}".format(1,src,dst))
count +=1
# 链条
else:
#1.把n-1个圆盘从源柱子移动到中间的柱子
hanoi(n-1,src,mid,dst)
#2.把n号圆盘从源柱子移动到目的柱子
print("{}:{}->{}".format(n, src, dst))
count += 1
# 3.把n-1个圆盘从中间辅助柱子移动到目标柱子
hanoi(n-1,mid,dst,src)
# n 圆盘数量 src 源柱子 dst 目的柱子 mid 中间辅助柱子
hanoi(3,"A","C","B")
print("经过了{}步的移动".format(count))