-
백준 1003 - 피보나치 함수백준 algorithm 2020. 1. 20. 17:50반응형
fibonacci는 재귀로 풀어야한다는 것을 알아야한다.
//0 : fibonacci(n-1)
//1 : fibonacci(n)
//fibonacci : fibonacci(n-1) + fibonacci(n-2)
0과 1의 개수는 위와 같은 식을 따른다.
위의 식을 따라 알고리즘을 짜면 간단히 해결가능하다.
*testcase를 배열로 주고서 풀 경우 문제가 생길 수 있다. testcase를 숫자로 받고서, 해당 값을 줄이면서 입력을 받으면서 푸는 것이 맞는 방법이다.#include <iostream> using namespace std; //0 : fibonacci(n-1) //1 : fibonacci(n) //fibonacci : fibonacci(n-1) + fibonacci(n-2) int fibo[41]; int fibonacci(int n) { if(n<=0) { fibo[0]=0; return 0; } else if(n==1) { fibo[1]=1; return 1; } if(fibo[n] !=0) return fibo[n]; else{ return fibo[n]=fibonacci(n-1) +fibonacci(n-2); } } int main() { int testCase; cin>>testCase; int n; for(; 0<testCase; testCase--) { cin>>n; if(n==0)cout<<1<< " "<<0<<'\n'; else if(n==1)cout<<0<<" "<<1<<'\n'; else{ fibonacci(n); cout<<fibo[n-1]<<" "<<fibo[n]<<'\n'; } } return 0; }
반응형'백준 algorithm' 카테고리의 다른 글
백준 10844 - 쉬운 계단 수 (0) 2020.01.29 백준 10870 - 피보나치 수 5 (0) 2020.01.21 백준 2908 상수 (0) 2020.01.08 백준 1546 - 평균 (0) 2019.12.31 백준 - 8958 OX퀴즈 (0) 2019.12.27