강의

멘토링

커뮤니티

Inflearn Community Q&A

kjh9907253275's profile image
kjh9907253275

asked

(2026) Pass the Information Processing Engineer Practical Exam in Just One Week

Functions and Recursive Functions (v2)

피보나치

Resolved

Written on

·

42

0

피보나치(n) 의 값이 인덱스랑 왜다르죠? 헷갈립니다....

pythonjavac정보처리기사

Answer 2

0

weekendcode님의 프로필 이미지
weekendcode
Instructor

안녕하세요, 질문을 주실 때는 영상에서 몇 분 몇 초 대인지 말씀을 함께해주셔야 답변이 가능합니다.

확인 후 대댓글로 부탁드립니다..^^;

kjh9907253275님의 프로필 이미지
kjh9907253275
Questioner

45분 부분에 2일을 까먹고 있습니다.

weekendcode님의 프로필 이미지
weekendcode
Instructor

피보나치 n의 값이 왜 인덱스랑 다르죠? 라는 의미는,

인덱스를 넣으면 그것에 대한 피보나치 값이 나와야 한다고 생각하시는 걸까요?

 

기대하고 계시는 출력값이나 헷갈리시는 부분이 뭔지 말씀 부탁드립니다.

 

코드 자체를 설명해드리자면,

fibonacci의 함수는 숫자를 하나 받아서, 그 숫자보다 바로 하나 작은 것을 다시 호출하고 그 숫자보다 2가 작은 것을 다시 호출한 뒤에

그것을 다 끝난 것을 리턴받는 재귀함수입니다.

 

이 이야기는 뭐냐면, 내가 부른 함수들이 각각 최초의 탈출조건 if(n<=1)에 걸리기 전까지는 자기보다 1 작은 것과 2 작은 것을 다 더해서 오라는 뜻입니다.

 

지금 메인함수에 반복문을 보시면 0부터 9까지 들어갑니다. (총 10개죠)

0, 1이 들어가면 아예 바로 리턴됩니다. if문에 걸리니까요. 아래까지 내려갈 필요도 없습니다.

 

2가 들어갔다고 해봅시다.

그러면 printf("%d~", fibonacci(i)); 입니다.

그게 쪼개지죠. fibonacci(0), fibonacci(1)입니다. 이 것을 각각 더하면 1이 됩니다.

내가 호출한 아래 함수들이 다 더해지고 나서야 그 숫자의 출력값이 정해지는 것입니다.

 

그래서 반복문은 앞에서부터 i가 들어간 순서대로 0~1~1~ .... 이렇게 출력되는 것입니다.

 


 

사실 영상에서 설명한 그대로를 다시 글로 옮겨놓은 것 뿐인데,

제일 좋은 것은 질문자분께서 기대하는 출력값을 말씀해주시면 어떤 부분을 헷갈리고 계신지 제가 파악하기 좋습니다.

 

weekendcode님의 프로필 이미지
weekendcode
Instructor

image.png

 

image.png

 

도움이 되실까하여 LLM으로 생성한 도표 첨부해드립니다.

kjh9907253275님의 프로필 이미지
kjh9907253275
Questioner

1761578041861.png.webp

겨우 이해해서 풀었습니다. 자꾸 0,1,1,3,5,7,9이런 식으로 나와서 왜 다르지 했는데 제가 피보나치 값을 바꾸지 않았네요

0

안녕하세요, 인프런 AI 인턴입니다. 김장호님.

피보나치 수열에서 n번째 수는 종종 그 index와 동일하지 않은 값을 가집니다. 이는 피보나치 수열의 정의 때문인데, 피보나치 수열은 각각의 수가 그 이전의 두 수의 합으로 정의됩니다. 초기 두 항은 각각 0과 1로 시작합니다. 따라서 수열 상에서 두 번째(1을 기준으로 하면 두 번째 인덱스) 수는 1입니다. 수열의 시작이 0, 1로 시작하기 때문에 발생하는 차이입니다.

예를 들어:
- F(0) = 0
- F(1) = 1
- F(2) = F(1) + F(0) = 1 + 0 = 1
- F(3) = F(2) + F(1) = 1 + 1 = 2
- …

이처럼 인덱스가 수열의 값과 맞지 않기 때문에 헷갈릴 수 있습니다.

이와 관련된 기존 답변을 참고하시면 더 도움이 될 수 있을 것 같아 몇 가지 링크를 첨부드립니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

kjh9907253275's profile image
kjh9907253275

asked

Ask a question