VladimirKostovsky

Прога. Лаба 1. Вариант 15

Feb 13th, 2022 (edited)
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.36 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. // в заданной подпоследовательности
  4. // найти самую длинную
  5. // которая является арифметической или геометрической прогрессией
  6.  
  7. int a[10]{2, 4, 6, 8, 10, 12, 14, 16, 18, 20}, n, s, d, q; // введите мне массив
  8. int ar_temp, ar_max, geo_temp, geo_max;
  9. int temp_d, temp_q;
  10.  
  11. int main() {
  12. n = 10; //внедрить size
  13. d = a[1] - a[0];
  14. q = a[1] / a[0]; // НА НУЛЬ ДЕЛИТЬ НЕЛЬЗЯ!!!!
  15. for (int i = 1; i < (n - 1); i++) {
  16.     // в арифм прогрессии минимум 3 члена
  17.     if (d == (a[i + 1] - a[i])) {
  18.         ++ar_temp;
  19.             if (ar_temp > ar_max) {
  20.                 ar_max = ar_temp;
  21.             }
  22.     }
  23.     else { ar_temp = 0; d = a[i + 1] - a[i]; } // он же из циклов не выходит, пока не пройдет n раз
  24. // в геом прогрессии минимум 3 члена
  25.     if (q == (a[i + 1] / a[i])) {
  26.         ++geo_temp;
  27.             if (geo_temp > geo_max) {
  28.                 geo_max = geo_temp;
  29.             }
  30.             else { geo_temp = 0; d = a[i + 1] / a[i]; }
  31.     }
  32. }
  33.     if (ar_max > geo_max) {
  34.     cout << ar_max;
  35.     } else { cout << geo_max; }
  36. // а если они равны, выйдет пустота
  37. }
  38.  
  39. // первый и последний член в последовательность не включает
Add Comment
Please, Sign In to add comment