Advertisement
Guest User

Untitled

a guest
Dec 14th, 2018
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.85 KB | None | 0 0
  1. // 7 Вариант, задание 2
  2. #include <iostream>
  3. #include <random>
  4. #include <algorithm>
  5. #include <vector>
  6. #include <chrono>
  7. #include <functional>
  8.  
  9. typedef std::vector<double> F64Vector;
  10. using std::size_t;
  11.  
  12. auto generateVector(size_t size, double low, double high) -> F64Vector {
  13.     auto seed      = std::chrono::high_resolution_clock::now().time_since_epoch().count();
  14.     auto mt        = std::mt19937(seed);
  15.     auto urd       = std::uniform_real_distribution<double>(low, high);
  16.     auto generator = std::bind(urd, mt);
  17.     auto vector    = F64Vector(size);
  18.  
  19.     std::generate(vector.begin(), vector.end(), generator);
  20.  
  21.     return vector;
  22. }
  23.  
  24. int main() {
  25.     std::cout << "Введите размер массива: ";
  26.     auto size = 0U;
  27.     std::cin >> size;
  28.  
  29.     auto vector = generateVector(size, 0, 1000);
  30.  
  31.     auto incrStepsCount = 0U;
  32.     auto incrRangeWasFound = false;
  33.     auto startIncrRangePos = vector.begin();
  34.  
  35.     for (auto i = vector.begin() + 1; i != vector.end(); ++i) {
  36.         if (*i > *(i - 1))
  37.             ++incrStepsCount;
  38.         else {
  39.             if (incrRangeWasFound)
  40.                 break;
  41.             incrStepsCount = 0;
  42.         }
  43.  
  44.         if (incrStepsCount == 4) {
  45.             startIncrRangePos = i - incrStepsCount;
  46.             incrRangeWasFound = true;
  47.         }
  48.     }
  49.  
  50.     if (incrRangeWasFound) {
  51.         auto incrRangeVector = F64Vector(startIncrRangePos, startIncrRangePos + incrStepsCount);
  52.         std::cout << "Возрастающая последовательность: " << std::endl;
  53.         for (auto& i : incrRangeVector)
  54.             std::cout << i << "  ";
  55.         std::cout << std::endl;
  56.     } else
  57.         std::cout << "Возрастающей последовательности из более чем 3 элементов нет!" << std::endl;
  58.  
  59.     return 0;
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement