where the function has problem? n = 900 is OK , but n = 1000 is ERROR
Gennadiy Zlobin
gennad.zlobin at gmail.com
Mon Aug 1 05:23:20 EDT 2011
The maximum depth of the Python interpreter stack is limited to 1000 calls
by default. You can get it by import sys; sys.getrecursionlimit() and set a
new value to sys.setrecursionlimit(new_value)
- Gennadiy <gennad.zlobin at gmail.com>
On Mon, Aug 1, 2011 at 4:11 PM, jc <chenjii at gmail.com> wrote:
> # Get Fibonacci Value
> # Fibonacci(N) = Fibonacci(N-1) + Fibonacci(N-2)
> #
> # n = 900 is OK
> # n = 1000 is ERROR , Why
> #
> # What Wrong?
> #
>
> cache = []
>
> def fibo( n ):
>
> try:
> if cache[n] != -1:
> return cache[n]
> else:
> if 0 == n:
> r = 0
> elif 1 == n:
> r = 1
> else:
> r = fibo(n-1) + fibo(n-2)
>
> cache[n] = r
> return r
> except:
> print "EXCEPT: " + str(n)
>
>
> if __name__ == '__main__':
>
> # This n = 900 is OK
> # But n = 1000 is ERROR
>
> n = 900
> cache = range(0 , n + 1 , 1)
>
> for i in cache:
> cache[i] = -1
>
> print "Fibo(" + str(n) + ") = " + str(fibo(n))
> print "\n"
> print "\n"
>
> --
> http://mail.python.org/mailman/listinfo/python-list
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20110801/f91a29d3/attachment-0001.html>
More information about the Python-list
mailing list