久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      Python階乘求和的方法

      Python階乘求和的方法

      Python階乘求和的方法

      題目描述:

      獲得用戶輸入的整數(shù)n,輸出 1!+2!+…+n!的值。

      如果輸入數(shù)值為0、負(fù)數(shù)、非數(shù)字或非整數(shù),輸出提示信息:輸入有誤,請輸入正整數(shù)。

      (推薦學(xué)習(xí):Python視頻教程)

      方法一:

      #factTest1 def main():     a = input()     sum = 0     if a.isdigit():         n = eval(a)         if n > 0:             fact = 1             for i in range(1, n+1):                 fact *= i                 sum += fact             print(sum)         else:             print("輸入有誤,請輸入正整數(shù)")     else:         print("輸入有誤,請輸入正整數(shù)") main()

      方法二:遞歸思想

      #factTest2 import sys sys.setrecursionlimit(5000) def getSum(i):     sum = 0     if i==0:         return 0     else:         for x in range(1,i+1):             sum += fact(x)         return sum def fact(m):     if m==0:         return 1     else:         return m*fact(m-1) def main():     n = input()     if n.isdigit():         a = eval(n)         if a>0:             result = getSum(a)             print(result)         else:             print("輸入有誤,請輸入正整數(shù)")     else:         print("輸入有誤,請輸入正整數(shù)") main()

      問題總結(jié):

      當(dāng)使用遞歸方法求1024的階乘時,出現(xiàn)了一個異常:RecursionError: maximum recursion depth exceeded in comparison,超出了遞歸的最大深度。一些網(wǎng)友提到Python中默認(rèn)的最大遞歸深度為1000,但在實際測試中,我的電腦到997的時候就出現(xiàn)異常了,不知道這是由什么決定的。因此,為了能夠計算1024的階乘,需要為最大遞歸深度賦予一個更大的值。這里可以采用以下方法:

      import sys sys.setrecursionlimit(5000) #修改為5000

      另外,也可以查看最大遞歸深度:

      import sys sys.getrecursionlimit()  # output:1000

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號