diff options
1 files changed, 28 insertions, 0 deletions
| -rw-r--r-- | Sem. 12/fibb.cpp | 28 |
diff --git a/Sem. 12/fibb.cpp b/Sem. 12/fibb.cpp new file mode 100644 index 0000000..33eb899 --- /dev/null +++ b/Sem. 12/fibb.cpp @@ -0,0 +1,28 @@ + #include <iostream> + +unsigned fibbRec(unsigned n, int* cache) +{ + if (n <= 1) + return 1; + if (cache[n] != 0) //вече е сметнато + return cache[n]; + + unsigned result = fibbRec(n - 1, cache) + fibbRec(n - 2, cache); + cache[n] = result; + return result; +} +unsigned fibb(unsigned n) +{ + int* cache = new int[n + 1]; + for (unsigned i = 0; i < n + 1; i++) + cache[i] = 0; + + unsigned result = fibbRec(n, cache); + delete[] cache; + return result; +} + +int main() +{ + std::cout << fibb(40) << std::endl; +} |
