py分别用递归法和非递归法求阶乘,并对两种方法计时的代码
import time
#递归算法
def fact(n):
if n==1:
return 1
return n * fact(n - 1)
#非递归算法
def ff(n):
if n<0:
print('负数没有阶乘')
elif n == 0:
return 1
elif n>=1:
ee = 1
for i in range(1,n+1):
ee*=i
return ee
def tt(nn):
s = time.time()
aa = nn
e = time.time()
diff_t = e-s
print(diff_t)
return aa
if __name__ == '__main__':
a = tt(fact(500))
b = tt(ff(500))