편집 기록

편집 기록
  • 프로필 알 수 없는 사용자님의 편집
    날짜2021.07.14

    <파이썬> 피보나치 수열을 재귀함수 구현 후 실행 관련 질문


    파이썬(피보나치 수열을 재귀함수를 활용하여 구현한 코드)

    def fib(n):
        if  n ==1 or n==2:
            return 1
        return fib(n-1)+fib(n-2)
    print(fib(6))
    

    위의 코드를 실행시키면 print(fib(6))때문에 n에 6이 할당된 후에 return값이 fib(5)+fib(4)이 되는데 그 다음 n에 5가 어떤 방식으로 할당되게 되는 것인가요?

    아래는 제가 생각하는 실행 과정을 나열해봤습니다. 틀린 부분이 있으면 수정 부탁드립니다.

    1.fib(6) = fib(5)+fib(4)
    2.fib(5) = fib(4)+fib(3)
    3.fib(4) = fib(3)+fib(2)
    4.fib(3) = fib(2)+fib(1)
    5.fib(2) = 1
    6.fib(1) = 1
    7.fib(3) = 2
    8.fib(2) = 1
    9.fib(4) = 3
    10.fib(3) = fib(2)+fib(1)
    11.fib(2) = 1
    12.fib(1) = 1
    13.fib(3) = 2
    14.fib(5) = 5
    15.fib(4) = fib(3)+fib(2)
    16.fib(3) = fib(2)+fib(1)
    17.fib(2) = 1
    18.fib(1) = 1
    20.fib(3) = 2
    21.fib(2) = 1
    22.fib(4) = 3
    23.fib(6) = 8
    
  • 프로필 엽토군님의 편집
    날짜2021.07.14

    <파이썬> 피보나치 수열을 재귀함수 구현 후 실행 관련 질문


    파이썬(피보나치 수열을 재귀함수를 활용하여 구현한 코드)

    def fib(n):
        if  n ==1 or n==2:
            return 1
        return fib(n-1)+fib(n-2)
    print(fib(6))
    

    위의 코드를 실행시키면 print(fib(6))때문에 n에 6이 할당된 후에 return값이 fib(5)+fib(4)이 되는데 그 다음 n에 5가 어떤 방식으로 할당되게 되는 것인가요?

    아래는 제가 생각하는 실행 결과를 나열해봤습니다. 틀린 부분이 있으면 수정 부탁드립니다.

    1.fib(6) = fib(5)+fib(4)
    2.fib(5) = fib(4)+fib(3)
    3.fib(4) = fib(3)+fib(2)
    4.fib(3) = fib(2)+fib(1)
    5.fib(2) = 1
    6.fib(1) = 1
    7.fib(3) = 2
    8.fib(2) = 1
    9.fib(4) = 3
    10.fib(3) = fib(2)+fib(1)
    11.fib(2) = 1
    12.fib(1) = 1
    13.fib(3) = 2
    14.fib(5) = 5
    15.fib(4) = fib(3)+fib(2)
    16.fib(3) = fib(2)+fib(1)
    17.fib(2) = 1
    18.fib(1) = 1
    20.fib(3) = 2
    21.fib(2) = 1
    22.fib(4) = 3
    23.fib(6) = 8
    
  • 프로필 알 수 없는 사용자님의 편집
    날짜2021.07.14

    <파이썬> 피보나치 수열을 재귀함수 구현 후 실행 관련 질문


    파이썬(피보나치 수열을 재귀함수를 활용하여 구현한 코드)

    //def fib(n):
        if  n ==1 or n==2:
            return 1
        return fib(n-1)+fib(n-2)
    print(fib(6))
    

    위의 코드를 실행시키면 print(fib(6))때문에 n에 6이 할당된 후에 return값이 fib(5)+fib(4)이 되는데 그 다음 n에 5가 어떤 방식으로 할당되게 되는 것인가요?

    아래는 제가 생각하는 실행 결과를 나열해봤습니다. 틀린 부분이 있으면 수정 부탁드립니다.

    //
    1.fib(6) = fib(5)+fib(4)
    2.fib(5) = fib(4)+fib(3)
    3.fib(4) = fib(3)+fib(2)
    4.fib(3) = fib(2)+fib(1)
    5.fib(2) = 1
    6.fib(1) = 1
    7.fib(3) = 2
    8.fib(2) = 1
    9.fib(4) = 3
    10.fib(3) = fib(2)+fib(1)
    11.fib(2) = 1
    12.fib(1) = 1
    13.fib(3) = 2
    14.fib(5) = 5
    15.fib(4) = fib(3)+fib(2)
    16.fib(3) = fib(2)+fib(1)
    17.fib(2) = 1
    18.fib(1) = 1
    20.fib(3) = 2
    21.fib(2) = 1
    22.fib(4) = 3
    23.fib(6) = 8