여기서 포인트는 n번째를 거꾸로 Tracking 하는 것임
 
import sys
sys.setrecursionlimit(10**7)
 
a = int(input())
 
def fib(n):
  if n == 0:
    return 0
  elif n == 1 or n == 2:
    return 1
  else:
    return fib(n - 1) + fib(n - 2)
 
print(fib(a))
 
import sys
sys.setrecursionlimit(10**7)
 
n = int(input())
 
def add_ft(a, sum):
  if a < n+1 :
    sum = sum * a
    return add_ft(a + 1, sum)
  else:
    return sum
 
print(add_ft(2, 1))
 
아래 포인트는 RecursionError: maximum recursion depth exceeded in comparison 를 출력함의 문제이다
 
전체 재귀함수의 크기를 늘려주면 된다!!
 
 
import sys
sys.setrecursionlimit(10**7)
 
 
n = int(input())
sum = 0
 
 
def add_ft(n, su):
  if n > 0:
    su = su + n
    return add_ft(n - 1, su)
  else:
    return su
 
print(add_ft(n, 0))
 
주의 사항은 
연속된 print를 연결로 할 경우, print(s, end=' ')로 해결한다.
 
 
 
 
st, ed = map(int, input().split())
 
def add_ft(s,e):
  if s<=e:
    if s%2==1:
      print(s, end=' ')
      return add_ft(s+1,e)
    else:
      return add_ft(s+1,e)
 
add_ft(st, ed)
 
 
n=int(input())
 
def add_ft(a):
  if a > 0:
    print(a)
    return add_ft(a-1)
  else:
    pass
 
add_ft(n)
 
add_ft을 0부터 시작하면 안됨
 
n=int(input())
 
def add_ft(a):
  if a < n+1:
    print(a)
    return add_ft(a+1)
  else:
    pass
 
add_ft(1)

+ Recent posts