Algorithms
[알고리즘] dynamic Fibonacci
Roien
2015. 7. 4. 23:24
반응형
1. 기본 (재귀)
int fibonacci(int i) { if (i == 0) return 0;
if (i <= 2) { return 1; }
return fibonacci(i - 2) + fibonacci(i - 1); } |
2. 해집합 이용 (dynamic)
int dynamic_fibonacci(int n, int *solution_set) { int ret = 0;
if (n == 0) return 0;
if (solution_set[n] > 0) { ret = solution_set[n]; goto end; }
if (n <= 2) { ret = solution_set[n] = 1; goto end; }
solution_set[n] = dynamic_fibonacci(n - 2, solution_set) + dynamic_fibonacci(n - 1, solution_set); return solution_set[n];
end: return ret; } |
반응형