很基础的一道题,不过做得很纠结.....
首先第一个是自己写的函数,不过没有按照课程要求来写,课程要求定义函数变量里面要带有x变量,不顾我自己写的没有,不过功能上测试是正常的
def factorial():
sum=1
x=int(input('please enter:'))
if x<0:
print ('wrong')
elif x==0 or x==1:
return 1
else:
for i in range(1,x+1):
sum = sum*i
print (sum)
factorial()
---------------------------------------------------------------------------------------分割线---------------------------------------------------------------------------------------------------------------------------------------
下面是看到网上别人用递归做的函数,也是题目本身要求的功能
def factorial(x):
if x<0:
print ('wrong enter')
elif x==0 or x==1:
return 1
else:
return x*factorial(x-1)
---------------------------------------------------------------------------------------分割线---------------------------------------------------------------------------------------------------------------------------------------
还有其他用循环实现的,写得也比我简介,不过没考虑到负数的情况
def f(n):
c = 1
for i in range(n+1):
c *= i
return c