2016-07-04 5 views
1
def fibonacci(n): 
    if n==0: 
     return 0 
    if n==1 | n==2: 
     return 1 
    f = (fibonacci(n-1) + fibonacci(n-2)) 
    return f 

안녕하세요, 저는 python 초보자이고 재귀적인 fibonacci 함수를 구현하려고하지만 위 코드는 작동하지 않습니다. 이 함수를 호출하면 재귀 깊이 한계에 도달 할 때까지 터미널이 6 행을 인쇄합니다. 여기서 사용하는 올바른 구문은 무엇입니까?파이썬에서 재귀 오류

답변

1

당신이 매우 작은 변화 =>|or

(OR 논리로 산술 OR)을 만들 필요가

def fibonacci(n): 
    if n==0: 
     return 0 
    if n==1 or n==2: 
     return 1 
    f = (fibonacci(n-1) + fibonacci(n-2)) 
    return f 


print fibonacci(6) 
# 8 

또 다른 옵션은 4

이 도움이 되었으면 좋겠 줄에 if (n==1)|(n==2):을 사용하는 것입니다 :)

1

"|" 논리가 아니라 산술입니다. '또는'을 사용하십시오.

def fibonacci(n): 
     if n==0: 
      return 0 
     if n==1 or n==2: 
      return 1 
     f = (fibonacci(n-1) + fibonacci(n-2)) 
     return f