一些递归

2018-02-23  本文已影响0人  请叫我魔法师
# 阶乘
# def fact(n):
#     if n == 1:
#         return 1
#     return n * fact(n-1)
# a = fact(5)
# print(a)

# def fact (n):
#     return fact_inter(n, 1)

# def fact_inter (a, b):
#     if a == 1:
#         return b
#     return fact_inter(a-1, a*b)
# print(fact(5))


# 斐波那契数列
# def fbnq (num):

#     if num == 0:
#         return 0
#     if num == 1:
#         return 1
#     tem = fbnq(num-1)+fbnq(num-2)
#     return tem

# result = fbnq(8)
# print(result)

# 汉诺塔
# def hnt (n):
#     if n == 1:
#         return 1
#     return 2*hnt(n-1) + 1
# res = hnt (5)
# print(res)

def hanNuo (n, start, temp, to):
    if n == 1:
        print ('from', start, 'to', to)
    else:
        hanNuo (n-1, start, to, temp)
        hanNuo (1, start, temp, to)
        hanNuo (n-1, temp, start, to)

hanNuo (2, 'A', 'B', 'C')
汉诺塔过程.png
上一篇 下一篇

猜你喜欢

热点阅读