프로그래밍/알고리즘 공부

모두의 알고리즘 문제 05. 최대공약수 구하기 연습문제

이자다 2022. 5. 17. 11:02
반응형
# 연습문제 5-1 n번째 피보나치 수를 구하는 알고리즘을 재귀호출을 이용해서 구현해 보시오.

def fibo (n):
    if n==0:
        return 0
    if n==1:
        return 1
    return fibo(n-1) + fibo(n-2)

print(fibo(7)) #결과 13
print(fibo(10)) #결과 55

#재귀호출 문제는 자신없어서 암담했는데 일단 배운대로 종료조건 설정하고 고민해보다가
#문제 힌트의 (7번값 = 5번값 + 6번값) 을 보고 대강 감을 잡고 풀었다.

#이번 재귀호출은 그림으로 표현하자면 트리 구조처럼 된다.
#fibo(5)를 호출하면 (4)와 (3)이 호출되고, (4)는 (3)과 (2)를 호출하고, (3)은 (2)와 (1)을 호출한다.
#이렇게 하나의 함수가 두개의 함수를 호출하는 식으로 트리 구조가 완성되고 아래에서부터 값을 반환받아가며 최상위 루트까지 올라간다.
반응형