python: 递归函数:阶乘

一,认识递归函数

1,什么是递归?
递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,
否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,
直到问题无法分解为止

2,什么是递归函数:
递归函数(recursive function)是指在函数体中可以调用自己的函数

3,语法

def fn():
    # ...
    if condition:
        # 停止自我调用
    else:
        fn()
    # ...

4,递归函数的优点和缺点

递归函数的优点:它们可以帮助程序员在处理复杂问题时提供一种简单且易懂的解决方案。
递归函数使代码具有可读性和可重用性,
而且可以使用递归函数解决使用其他方法难以处理的问题。
递归函数的缺点: 递归函数可能会在运行时占用较多的系统资源,
因为它们需要在堆栈上存储多个函数调用
其次,递归函数可能导致代码变得不容易理解,
因为它具有一定的复杂度

二,阶乘

1,什么是阶乘?

一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。
自然数n的阶乘写作n!。

2,例子:

5! = 1 x 2 x 3 x 4 x 5

说明:刘宏缔的架构森林—专注it技术的博客,
网址:https://imgtouch.com
本文: https://blog.imgtouch.com/index.php/2024/03/06/python-di-gui-han-shu-jie-cheng/
代码: https://github.com/liuhongdi/ 或 https://gitee.com/liuhongdi
说明:作者:刘宏缔 邮箱: 371125307@qq.com

三,应用:

1,使用递归计算阶乘

1
2
3
4
5
6
7
8
9
def factorial(n):
    if n == 1# 正确的返回添加(结束条件)
        return 1
    else:
        return n * factorial(n - 1# 调用自身函数的行为
 
num = 5
res = factorial(5)
print(f"{num} 的阶乘是 {res}")

运行结果:

5 的阶乘是 120

2,不使用递归方式,用while循环解决

1
2
3
4
5
6
7
8
9
num = 5  # 数字
factorial = 1  # 阶乘的最终结果
 
i = 1  # 计数器
while i <= num:
    factorial *= i
    i += 1
 
print(f"{num} 的阶乘是 {factorial}")

运行结果:

5 的阶乘是 120

3,不使用递归方式,用for循环解决

1
2
3
4
5
6
n = 5     # 要计算阶乘的数字
factorial = 1    # 阶乘的最终结果
 
for i in range(1, n + 1):
    factorial *= i
print(f"{n} 的阶乘是 {factorial}")

运行结果:

5 的阶乘是 120
posted @   刘宏缔的架构森林  阅读(76)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2023-05-15 配置wordpress:修改链接/a标签样式(wordpress 6.2)
2023-05-15 配置wordpress:创建隐私政策页(wordpress 6.2)
2020-05-15 linux(centos8):查看操作系统的当前版本(os/kernel/bash)
2020-05-15 linux(centos8):用tr替换或删除字符
2020-05-15 linux(centos8):用cut显示文本内容的指定列
2020-05-15 linux(centos8):用uniq去除文本中重复的行(去重)
点击右上角即可分享
微信分享提示