PY
py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import functools
import sys
import resource
#maximize recursion limit safely
#print(f'{resource.getrlimit(resource.RLIMIT_STACK) = }')
resource.setrlimit(resource.RLIMIT_STACK, [0x10000000, resource.RLIM_INFINITY])
#print(f'{sys.getrecursionlimit() = }')
sys.setrecursionlimit(0x100000) #set recursion limit to a fraction of resource.RLIMIT_STACK.
@functools.cache
def q(n):
if n<=2:
return 1
else:
return (q(n-(q(n-1)))+q(n-(q(n-2))))
#max 499 for default 1000 recursionlimit
#max 749 for sys.setrecursionlimit(1500)
#max 524272 for me at max safe recursionlimit
num = int(input())
q(num)
print(f'q({num}) = {q(num)}')
Enter to Rename, Shift+Enter to Preview
OUTPUT
Run