Python 递归

普通算法

def fun(n):
    result = n
    for i in range(1,n):
        result *=i
    return result

number = int(input("请输入一个正整数:"))
result = fun(number)

print("%d 的阶乘是:%d" % (number,result))

递归写法

def factorial(n):
    if n==1:
        return 1
    else:
        return n*factorial(n-1)

number2 = int(input("请输入一个正整数:"))
result = factorial(number2)
print('%d 的阶乘 %d' % (number2,result))

自己调用自己,最终要有返回值

算兔子问题

#兔子生兔子问题

#普通方法
def tab(n):
    n1=1
    n2=1
    n3=1

    if n<1:
        print("输入有误!")
        return  -1

    while (n-2) >0:
        n3= n2+n1
        n1= n2
        n2=n3
        n -=1
    return n3

result =tab((20))
if result !=-1:
    print("总共有%d对小兔子诞生!" % result )

    
#递归方法

def fab(n):
    if n<1:
        print("输入有误!")
        return -1
    if n == 1 or n ==2:
        return 1
    else:
        return fab(n-1)+fab(n-2)

result =fab(20)
if result !=-1:
    print("总共有%d对小兔子出生" % result)
原文地址:https://www.cnblogs.com/youmingkuang/p/7449542.html