C로 구현한 10870번 피보나치 수 5 구하기 문제 풀이입니다.
https://www.acmicpc.net/problem/10870
#include <stdio.h>
int n[21];
int fibo(int x) {
if(x == 0)
return 0;
if(x == 1)
return 1;
if(n[x] != 0)
return n[x];
return n[x] = fibo(x - 1) + fibo(x - 2);
}
int main() {
int input;
scanf("%d", &input);
printf("%d", fibo(input));
}
자연수를 입력받아 피보나치 수를 구하는 fibo( ) 함수를 수행하여 출력한다.
fibo( ) 함수에서는 만약 전달받은 매개변수 값이 0이라면 0을 리턴하고, 1이라면 1을 리턴한다.
그리고 배열 n의 해당 인덱스 값이 0이 아닐 경우 그대로 그 값을 리턴한다.
3가지의 조건이 모두 충족되지 않을 시 fibo( ) 함수를 재귀호출하여 해당 값의 이전 값과 2번째 이전 값을 더하여
해당 인덱스에 저장한 뒤 리턴한다.
'백준(C언어) 풀이 > 다이나믹 프로그래밍' 카테고리의 다른 글
백준(Python) 18353번 병사 배치하기 풀이 (0) | 2022.01.13 |
---|---|
백준(C) 2748번 피보나치 수2 풀이 (0) | 2021.09.17 |
백준(C) 11727번 2xn 타일링2 풀이 (0) | 2021.07.26 |
백준(C) 11726번 2xn 타일링 풀이 (0) | 2021.07.26 |