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)
复制代码

 

posted @   幽冥狂_七  阅读(284)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示