Advertisement
Ilya_Bykonya

Fibonacci calculation with cache

Jan 30th, 2023 (edited)
799
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.83 KB | Source Code | 0 0
  1. #include <filesystem>
  2. #include <functional>
  3. #include <iostream>
  4. #include <fstream>
  5. #include <numeric>
  6. #include <string>
  7. #include <vector>
  8. #include <ranges>
  9. #include <future>
  10. #include <thread>
  11. #include <mutex>
  12. #include <deque>
  13. #include <map>
  14. #include <set>
  15.  
  16. class Fibonacci {
  17. private:
  18.     std::vector<uint64_t> m_results = { 0, 1 };
  19. public:
  20.     uint64_t calculate(size_t index) {
  21.         std::cout << "Call calculate for index => " << index << std::endl;
  22.         if (m_results.size() > index)
  23.             return m_results[index];
  24.  
  25.         std::cout << "\tCache miss" << std::endl;
  26.  
  27.         auto result = calculate(index - 1) + calculate(index - 2);
  28.         m_results.push_back(result);//try delete :=)
  29.         return result;
  30.     }
  31. };
  32.  
  33.  
  34. int main() {
  35.     auto calculator = Fibonacci{};
  36.     std::cout << std::format("Result => {}", calculator.calculate(25)) << std::endl;
  37. }
  38.  
  39.  
  40.  
Tags: C++
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement