기타[etc]/알고리즘
[백준] 동적기획법 - 피보나치 0과 1 세기
Richong
2018. 3. 19. 22:34
SMALL
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | #include <vector> #include <iostream> #include <algorithm> using namespace std; int a,b; int fibonacci(int n, int m); int mem[10001][4] = {0}; int main(void) { mem[0][0] = 1; mem[1][0] = 0; int n,c; cin >> n; while(n--){ cin >> c ; if( 0 > c || c > 40){ return 1; } cout << fibonacci(c,0) <<" "<<fibonacci(c,1) << endl; } } int fibonacci(int n, int m) { if(mem[n][m] !=0) return mem[n][m]; if (n==0 && m == 0) { return 1; } else if (n==1 && m == 1) { return 1; } else if(n ==0 && m ==1) return 0; else if(n == 1 && m ==0) return 0; else { if(m==0) { mem[n][m] = fibonacci(n-1,m)+ fibonacci(n-2,m); return mem[n][m]; } else if (m==1) { mem[n][m] = fibonacci(n-1,m)+ fibonacci(n-2,m); return mem[n][m]; } } } | cs |
LIST