- 普通的for循环实现阶乘
a = 1
n = 5
for i in range(1,n+1):
a = a * i
print(a)
2.python中,用while循环语句,算阶乘
>>> def func(n):
s=1
while(n):
s*=n
n-=1
return s
>>> func(3)
6
3.函数中用while实现阶乘
def main():
count = int(input('你要求几的阶乘:'))
res = 1
while True:
res = res * count
count = count - 1
if count == 1:
break
print(res)
if __name__ == '__main__':
main()
- reduce函数实现阶乘
from functools import reduce
n = 5
print(reduce(lambda x,y:x*y,range(1,n+1)))
5.函数的递归实现
def factorial(n):
if n == 0 or n == 1:
return 1
else:
return (n*factorial(n-1))
a = factorial(5)
print(a)
参考:
https://blog.csdn.net/geerniya/article/details/77414427