K12教育赛事综合服务平台
专注青少年竞赛题库网站
聚乐之家官方网站
下载聚乐之家官方App
def aFactorial(N): rst = 1 for i in range(1,N + 1): rst *= i return rst def bFactorial(N): if N == 1 or N == 0: return 1 return N * bFactorial(N-1) print(aFactorial(10),bFactorial(10))
aFactorial()用循环方式,bFactorial()用递归方式
bFactorial()更加符合数学定义,直观易于理解,而aFactorial()需要将数学定义转换为计算机程序实现
当N值较大时,aFactorial()执行效率更高,而bFactorial()因为有多次函数调用,效率将降低,且N如果较大,将可能导致不能使用
bFactorial()因为代码量较少,没有循环,因此其执行效率更高