网站首页 > 基础教程 正文
阶乘是对于正整数 n,是所有小于或等于n的正整数的乘积。用 n! 表示。
例如:5!=5*4*3*2*1
- 使用迭代计算数字的阶乘
- 使用递归计算数字的阶乘
- 使用math.factorial()函数计算数字的阶乘
- 使用scipy.special模块的factorial()函数
使用迭代计算数字的阶乘
使用迭代方法计算阶乘,在程序中使用循环解决。
def fact(n):
if n<0:
print("负数不存在阶乘!")
elif n==0:
return 1
else:
f=1
for i in range(1,n+1):
f=f*i
return f
n=int(input("请输入:"))
print(n,"的阶乘是:",fact(n))
1.如果数为负数,找不到阶乘,因为负数的阶乘不存在。
2.如果数字为零,那么直接返回1,因为零的阶乘是1。
3.如果数是正数,迭代循环计算阶乘。
使用递归计算数字的阶乘
使用递归,我们可以编写更少的代码,这将比使用迭代方法编写的代码更简练,更易于理解。
def fact(n):
return 1 if (n==1 or n==0) else n*fact(n-1)
n=int(input("请输入:"))
print(n,"的阶乘是:",fact(n))
使用math.factorial()函数计算数字的阶乘
更简便计算阶乘的方法就是直接使用阶乘函数。可以通过使用math数学模块来完成。在math模块内部,有一个阶乘函数factorial()来计算数字的阶乘。必须导入math模块来使用此函数,在程序中调用它并传递要计算阶乘的数字。
from math import factorial
n=int(input("请输入:"))
print(n,"的阶乘是:",factorial(n))
使用scipy.special模块的factorial()函数
除了math模块,还有其他第三方库提供现成的阶乘函数,比如
scipy.special模块的factorial()函数。
语法格式:
scipy.special.factorial(n,exact=False)
参数:
n: 整数或序列
exact=False 返回浮点数
exact=True 返回整数
scipy.special模块的factorial()函数不但能计算单个数值的阶乘,还能计算列表、集合等多个数值的阶乘。
from scipy.special import factorial
print(factorial(4, exact=False))
print(factorial(4, exact=True))
#输出
24.0
24
#计算列表的阶乘
from scipy.special import factorial
n=[5,3,2]
print(factorial(n, exact=False))
print(factorial(n, exact=True))
#输出
[120. 6. 2.]
[120 6 2]
感谢阅读,关注我,精彩继续!
- 上一篇: python——计算n的阶乘
- 下一篇: Python 入门编程题库 58——计算整数n的阶乘
猜你喜欢
- 2024-11-22 Python教程:python中fact函数的用法
- 2024-11-22 Python 实现经典算法之基数排序
- 2024-11-22 python学习笔记 5.函数
- 2024-11-22 网易云大佬收藏的Python22个编程技巧,建议收藏
- 2024-11-22 Python基础编程——函数经典案例
- 2024-11-22 用golang抄袭python的排列组合
- 2024-11-22 10张动图学会python循环与递归
- 2024-11-22 使用 Python 计算 π 值
- 2024-11-22 一文总结30种Python的窍门和技巧,让你玩转Python
- 2024-11-22 Python基础知识总结
- 最近发表
-
- Vue3+Bootstrap5项目初始化 vue 项目初始化
- 前端程序员不得不爱的bootstrap 前端 bom
- 保姆级软路由刷机+软路由OpenWRT入门设置,新手轻松搭建软路由
- 好东西!iOS 16.5 半越狱分屏功能,教你正确安装
- Python数据可视化Dash开源库Bootstrap之折叠列表Accordion
- 终于发布!iOS 16.5 越狱工具已发布,分屏插件有效
- 超爽!iOS 16.6.1 Bootstrap 半越狱更新,有通知
- 好玩!iOS 16.6.1 半越狱玩法,这插件真生效
- 来啦!iOS 16.6.1 nathanlr 半越狱,被迫公测体验
- iOS 17.0 Bootstrap 1.2.9 半越狱来啦!更新两点
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)