编程小课堂python求整数n阶乘

小伙伴们,大家好!今天编程小课堂的主题是如何通过python求解整数n阶乘。这里主要介绍三种求解方法,下面小编将一步一步教会大家,并对相关知识点进行扩展分享。

一、求解问题

整数的阶乘(英语:factorial)是所有小于及等于该数的正整数的积,0的阶乘为1。即:n!=1×2×3×...×n

二、方法说明

python求整数n阶乘的方法:

1、使用math模块factorial(n)来计算n的阶乘

2、使用reduce()函数来求阶乘

3、通过递归函数来求阶乘

三、求解方法

(一)math.factorial(n)求解法

1、知识扩展

(1)math库是python提供的内置数学类函数库,math库仅支持整数和浮点数运算,一共提供了4个数字常数和44个函数。其中factorial(n)——以一个整数返回n的阶乘。

(2)调用方式

math.xxx()xxx代表具体的函数

2、求解方法

首先导入math模块,然后调用factorial()函数来计算阶乘。

importmath

value=math.factorial(n)

(二)reduce函数求解法

1、知识扩展

(1)reduce()函数会对参数序列中元素进行累积。

函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给reduce中的函数function(有两个参数)先对集合中的第1、2个元素进行操作,得到的结果再与第三个数据用function函数运算,最后得到一个结果。

注意:Python3.xreduce()已经被移到functools模块里,如果我们要使用,需要引入functools模块来调用reduce()函数:fromfunctoolsimportreduce

(2)reduce()函数语法:

reduce(function,iterable[,initializer]),其中:

function--函数,有两个参数

iterable--可迭代对象

initializer--初始参数,可选

2、求解方法

deffactorial(n):

ifn==0:

return1

else:

returnreduce(lambdax,y:x*y,range(1,n+1))

其中,这里我们用的是lambda表达式(匿名函数),带两个参数x、y,x就是每次操作后的返回值,参数y就是代表集合range(1,n+1)中的元素。

(三)递归函数求解法

1、知识扩展

(1)递归函数

在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。

2、求解方法

deffactorial(n):

ifn==0:

return1

else:

returnn*factorial(n-1)

四、课堂小结

本节课堂针对python求整数n阶乘问题,介绍了三种方法,包括math模块factorial(n)求解法、reduce()函数求解法及递归函数求解法,同时对math、reduce、递归函数等知识点进行详细说明。

大家对于本节课堂介绍,还有什么疑惑吗?可以


转载请注明:http://www.aierlanlan.com/rzfs/4632.html