长春制作门户网站的公司,手机设计网站公司,做战袍网站,动漫设计与制作好学吗一、定义
整数的阶乘#xff08;英语#xff1a;factorial#xff09;是所有小于及等于该数的正整数的积#xff0c;0的阶乘为1。即#xff1a;n!123...n
二、方法说明
python求整数n阶乘的方法#xff1a;
1、使用math模块factorial(n)来计算n的阶乘
2、for循环语句…一、定义
整数的阶乘英语factorial是所有小于及等于该数的正整数的积0的阶乘为1。即n!1×2×3×...×n
二、方法说明
python求整数n阶乘的方法
1、使用math模块factorial(n)来计算n的阶乘
2、for循环语句
3、使用reduce()函数来求阶乘
4、通过递归函数来求阶乘
三、求解方法
一math.factorial(n)求解法
1math库是python提供的内置数学类函数库math库仅支持整数和浮点数运算一共提供了4个数字常数和44个函数。其中factorial(n)——以一个整数返回 n 的阶乘。
import mathn 5 # 需要计算阶乘的数字factorial math.factorial(n)print(factorial) # 输出结果为 120
二for循环语句
循环算法是另一种常用的算法思想它可以通过循环迭代来解决问题。对于n的阶乘可以使用循环算法来进行计算。具体来说可以使用一个循环变量i从1到n依次将i与前面的乘积相乘。
def fact(n):s 1for i in range(1,n1):s* ireturn sprint(fact(5))
三reduce函数 函数将一个数据集合链表元组等中的所有数据进行下列操作用传给 reduce 中的函数 function有两个参数先对集合中的第 1、2 个元素进行操作得到的结果再与第三个数据用 function 函数运算最后得到一个结果。
reduce() 函数语法
reduce(function, iterable[, initializer])其中 function -- 函数有两个参数 iterable -- 可迭代对象 initializer -- 初始参数可选
from functools import reduce
n 5
print(reduce(lambda x,y:x*y,range(1,n1)))
这里我们用的是lambda表达式匿名函数带两个参数x、yx就是每次操作后的返回值参数y就是代表集合range(1,n1)中的元素。
四递归调用
在函数内部可以调用其他函数。如果一个函数在内部调用自身本身这个函数就是递归函数。
递归算法是一种常用的算法思想它可以通过将一个问题分解为若干个子问题来解决。对于n的阶乘使用递归算法来进行计算。具体来说可以将n的阶乘拆分为n×(n-1)的阶乘而(n-1)的阶乘又可以继续递归拆分。
def factorial(n):if n 0 or n 1:return 1else:return (n*factorial(n-1))
a factorial(5)
print(a)
函数的递归要有终止机制否则会一直递归下去。如上个程序中给定了if判断语句来终止循环的进行。