알고리즘문제

[백준] boj 1003 피보나치함수(Fibonacci function)

Beginner:) 2018. 8. 7.
320x100
#include<cstdio>
#include<cmath>
int n;
int dp_zero[41]={1,0,1,};
int dp_one[41]={0,1,1,};
int main() {
	
    int N,T;
	scanf("%d",&T);
	for(int i=3;i<=40;i++) 
	{
		dp_zero[i]=dp_zero[i-1]+dp_zero[i-2];
		dp_one[i]=dp_one[i-1]+dp_one[i-2];
	}
	while(T--)
	{
		int n;
		scanf("%d",&n);
		printf("%d %d\n",dp_zero[n], dp_one[n]);
	}
    return 0;
}

힌트

피보나치가 애초에 fibo[i-1] 와 fibo[i-2]를 더하는 것입니다.

그렇다면 호출 횟수를 구하는 것도 fibo_cnt[i-1]+ fibo_cnt[i-2]로 하면 되지 않을까요? 


문제링크 : https://www.acmicpc.net/problem/1003 


반응형

댓글