首先,我们要清楚阶乘是什么,一个正整数的阶乘是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。即n!=1×2×3×…×n。阶乘可以用递归方式定义:n!=(n-1)!×n。
#def fn(n,num):
num = n*num
n -=1
if n >0:
fn(n,num)
else:
print(num)
return num
n = (int(input("请输入:")))
num = 1
y = fn(n,num)
print(y)
for循环:
利用一个for循环,也可以实现阶乘,代码如下(Python3):
#!/usr/bin/python3
n = int(input("请输入一个正整数:"))
nums = 1
for i in range(n,0,-1):
nums = n*(i-1)
n = nums
print(nums)
调用函数的优化版代码如下:
#!/usr/bin/python3
def factor(n):
if n ==1:
return 1
return n*factor(n-1)
num = factor(int(input("请输入一个正整数:")))
print(num)
调用函数实现n个数的阶乘,首先,定义一个factor函数,输入一个正整数,被函数调用之后,会返回一个值,又将返回的值重新给函数进行循环,一直递进,直到n=1,(即:阶乘在乘到1时,就停止函数的调用)输出最终的num,就是阶乘的结果。