Python基础总结(5)

来源:互联网 发布:淘宝近千万卖家 编辑:程序博客网 时间:2024/06/11 09:54

递归

阶乘算法:

def jc(a):    if a==1:        return 1    else:        return a*jc(a-1)

斐波那契数列
1 1 2 3 5 8 13 21 34 55 89 144
|1, 当n=1
Fn|1, 当n=2
|F(n-1)+F(n-2) 当n>2

两种算法:
一:迭代

#encoding:utf-8def feb(n):    n1=1    n2=1    n3=1    if n<1:        print('输入有误')        return -1    while n>2:        n3=n2+n1        n1=n2        n2=n3        n-=1    return n3result=feb(20)if result!=-1:    print(result)

递归:

#encoding:utf-8def feb(n):    if n<1:        print('输入有误')        return -1    if n==1 or n==2:        return 1    else:        return feb(n-1)+feb(n-2)print feb(20)

汉诺塔:

def hannuota(n,x,y,z):    if n==1:        print x+'-->'+z    else:        hannuota(n-1,x,z,y)        print x+'-->'+z        hannuota(n-1,y,x,z)hannuota(8,'X','Y','Z')