VladimirKostovsky

Лаба 15. Пасты с угрозами

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