递归函数(100以内递归,开外用循环吧)
递归是函数间接或直接调用自身,一般分两个过程向下调用分解的过程和向上回溯综合的过程
***递归需要注意一定要有结束,否则会成为死循环,
#斐波那契数列:(这玩意儿是真他妈恶心,主要是面试他妈的一上来就是这玩意儿的原理和算法)
def fib(n):
if n == 1 or n == 2:
return 1
return fib(n-1) + fib(n-2)
rst = fib(10)
print("rst = " , rst)
rst = 55
#是以资源换取编写速度的算法
#哈诺塔函数
a = 'A'
b = 'B'
c = 'C'
def hano(a, b, c, n):
if n == 1:
print("{}--->{}".format(a, c))
return None
if n == 2:
print("{}--->{}".format(a, c))
print("{}--->{}".format(a, b))
print("{}--->{}".format(b, c))
hano(a, c, b, n-1)
print("{}--->{}".format(a, c))
hano(b, a, c, n-1)
hano(a, b, c, 3)
这里我就不写结果了,自己打印去吧