py分别用递归法和非递归法求阶乘,并对两种方法计时的代码

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))