當前位置:編程學習大全網 - 編程軟體 - python中如何用for語句寫出從1的階乘到20的階乘的加和?

python中如何用for語句寫出從1的階乘到20的階乘的加和?

def sum_factorial(start, stop):

?# 遞歸求階乘

?def factorial(n):

if n == 0: return 1

return n * factorial(n-1)

?# 生成器解析式生成各個數的階乘,然後再求和

?return sum(factorial(i) for i in range(start, stop+1))

# 調用函數,測試代碼

print(sum_factorial(1, 20))

註意:

在不調用庫的情況下,最容易想到的就是循環裏面套循環,不過這樣子占用時間為O(n^2)。當然妳這裏也就n=20,兩層循環沒啥問題,不過當n足夠大時,可以考慮用算法。

遞歸算法占用時間為O(n),壹個for循環為O(stop+1-start),兩者相加,比兩層循環效率高,當然這也是在n足夠大的時候,才談效率。

  • 上一篇:想問問這段代碼是什麽意思,編程預言來的..
  • 下一篇:路燈控制器屬於可編程plc嗎
  • copyright 2024編程學習大全網