Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // 7 Вариант, задание 2
- #include <iostream>
- #include <random>
- #include <algorithm>
- #include <vector>
- #include <chrono>
- #include <functional>
- typedef std::vector<double> F64Vector;
- using std::size_t;
- auto generateVector(size_t size, double low, double high) -> F64Vector {
- auto seed = std::chrono::high_resolution_clock::now().time_since_epoch().count();
- auto mt = std::mt19937(seed);
- auto urd = std::uniform_real_distribution<double>(low, high);
- auto generator = std::bind(urd, mt);
- auto vector = F64Vector(size);
- std::generate(vector.begin(), vector.end(), generator);
- return vector;
- }
- int main() {
- std::cout << "Введите размер массива: ";
- auto size = 0U;
- std::cin >> size;
- auto vector = generateVector(size, 0, 1000);
- auto incrStepsCount = 0U;
- auto incrRangeWasFound = false;
- auto startIncrRangePos = vector.begin();
- for (auto i = vector.begin() + 1; i != vector.end(); ++i) {
- if (*i > *(i - 1))
- ++incrStepsCount;
- else {
- if (incrRangeWasFound)
- break;
- incrStepsCount = 0;
- }
- if (incrStepsCount == 4) {
- startIncrRangePos = i - incrStepsCount;
- incrRangeWasFound = true;
- }
- }
- if (incrRangeWasFound) {
- auto incrRangeVector = F64Vector(startIncrRangePos, startIncrRangePos + incrStepsCount);
- std::cout << "Возрастающая последовательность: " << std::endl;
- for (auto& i : incrRangeVector)
- std::cout << i << " ";
- std::cout << std::endl;
- } else
- std::cout << "Возрастающей последовательности из более чем 3 элементов нет!" << std::endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement