在Python 中執行簡單的遞回程式時出現此錯誤。
RecursionError Traceback (most recent call last)
<ipython-input-19-e831d27779c8> in <module>
4 num = 7
5
----> 6 factorial(num)
<ipython-input-19-e831d27779c8> in factorial(n)
1 def factorial(n):
----> 2 return (n * factorial(n-1))
3
4 num = 7
5
... last 1 frames repeated, from the frame below ...
<ipython-input-19-e831d27779c8> in factorial(n)
1 def factorial(n):
----> 2 return (n * factorial(n-1))
3
4 num = 7
5
RecursionError: maximum recursion depth exceeded
我的程式是:
def factorial(n):
return (n * factorial(n-1))
num = 7
factorial(num)
請幫忙。提前致謝!
uj5u.com熱心網友回復:
遞回函式有一個簡單的規則要遵循。
- 創建退出條件
- 在某處呼叫自己(函式)。
您的階乘函式僅呼叫自身。它不會在任何情況下停止(繼續為負)。
然后達到最大遞回深度。
當你達到某個點時,你應該停下來。在您的示例中,是當n==1. 因為1!=1
def factorial(n):
if n == 1:
return 1
return (n * factorial(n-1))
uj5u.com熱心網友回復:
您必須在某個時候回傳另一個值。
下面的例子:
def factorial(n):
if n == 1:
return 1
return (n * factorial(n-1))
否則,您的遞回回圈不會停止并到達 - 無窮大。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/344904.html
上一篇:如何使用遞回輸出這個數字
