Advertisement
chevengur

СПРИНТ № 6 | Просто о сложности. Теория быстродействия | Урок 7: Опасности экспоненты (1/2)

Apr 4th, 2024 (edited)
548
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.73 KB | None | 0 0
  1. #include <cstdint>
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. // упростите эту экспоненциальную функцию,
  7. // реализовав линейный алгоритм
  8. int64_t T(int i) {
  9.     if (i <= 1) {
  10.         return 0;
  11.     }
  12.     if (i == 2) {
  13.         return 1;
  14.     }
  15.  
  16.     int64_t prev0 = 0, prev1 = 1, prev2 = 1;
  17.  
  18.     for (int t = 1; t < i; ++t)
  19.     {
  20.         int64_t next = prev0 + prev1 + prev2;
  21.         prev0 = prev1;
  22.         prev1 = prev2;
  23.         prev2 = next;
  24.     }
  25.     return prev0;
  26. }
  27.  
  28. int main() {
  29.     int i;
  30.  
  31.     while (true) {
  32.         cout << "Enter index: "s;
  33.         if (!(cin >> i)) {
  34.             break;
  35.         }
  36.  
  37.         cout << "Ti = "s << T(i) << endl;
  38.     }
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement