백준 웹사이트 "10870번 - 피보나치 수 5" 문제풀이입니다.
언어는 C언어입니다. (제출 언어: C99)
문제
소스 코드
#include <stdio.h>
int fibonacci(int n);
int main(void){
int n;
scanf("%d", &n);
printf("%d\n", fibonacci(n));
}
int fibonacci(int n){
if(n==0)
return 0;
else if(n==1)
return 1;
else
return fibonacci(n-1)+fibonacci(n-2);
}
문제 풀이
재귀함수하면 빠지지 않는 또 다른 기본 예제, 바로 피보나치 수열입니다. 이전 문제 10872번에서 'Recursive Case'와 'Base Case'에 대해 다룬 적이 있습니다. 이 문제의 경우, 기본 케이스 (Base Case)는 n이 0이나 1일 때이며, 각 경우 0 또는 1을 반환합니다. 반면 n이 0 또는 1이 아닐 경우, 재귀 케이스 (Recursive Case)에 들어서는데, 이 경우 fibonacci(n-1)+fibonacci(n-2)를 반환하여 'fibonacci' 함수를 재참조합니다. 이렇게 간단한 함수를 반복함으로써, 시간만 있으면 모든 피보나치 수를 구할 수 있습니다.
아래는 백준 웹사이트 "10872번 - 팩토리얼" 문제풀이입니다.
반응형
'코딩 > 백준 BOJ' 카테고리의 다른 글
[백준/C언어] 11729번 - 하노이 탑 이동 순서 (0) | 2022.02.04 |
---|---|
[백준/C언어] 2447번 - 별 찍기 - 10 (0) | 2022.02.03 |
[백준/C언어] 10872번 - 팩토리얼 (0) | 2022.02.01 |
[백준/C언어] 18108번 - 1998년생인 내가 태국에서는 2541년생?! (0) | 2022.01.31 |
[백준/C언어] 10926번 - ??! (0) | 2022.01.30 |