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
'기타[etc] > 알고리즘' 카테고리의 다른 글
[알고리즘] DP- 땅따먹기 (0) | 2018.03.24 |
---|---|
[알고리즘] DP-가장 큰 정사각형 찾기 (0) | 2018.03.23 |
[알고리즘] 숫자의 표현 (0) | 2018.03.19 |
bfs, dfs 연습 (0) | 2017.09.14 |
[hackerrank]Get Node Value (0) | 2017.09.13 |