개발자/C or C++
[백준] 1003번
728x90
반응형
저번 문제에 이어서 풀었다. 직접 피보나치 수를 따라가서 규칙을 찾았다. 즉
fibonacci(0)의 호출 횟수는 fibonacci(n-1)과 같았고,
fibonacci(1)의 호출 횟수는 fibonacci(n)과 같았다.
그러므로 fibonacci 값을 40까지 구한 후에
출력하면 되는 것이다.
#include <iostream>
using namespace std;
void fibo(int num){
int dp[41];
dp[0]=0;
dp[1]=1;
int i;
for(i=2;i<41;i++){
dp[i]=dp[i-1]+dp[i-2];
}
cout<<dp[num-1]<<" "<<dp[num]<<endl;
}
int main(){
int testcase,i,num;
cin>>testcase;
for(i=0;i<testcase;i++){
cin>>num;
if(num>40 || num<0)
return 0;
if(num==0){
cout<<1<<" "<<0<<endl;
continue;
}
if(num==1){
cout<<0<<" "<<1<<endl;
continue;
}
fibo(num);
}
return 0;
}
반응형
'개발자 > C or C++' 카테고리의 다른 글
[백준] 11047번 (0) | 2021.10.02 |
---|---|
[백준] 2579번 (0) | 2021.10.02 |
[백준] 2748번 (0) | 2021.10.02 |
[백준] 10828번 (0) | 2021.10.02 |
[백준] 4948번 (0) | 2021.10.02 |
댓글