Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- // в заданной подпоследовательности
- // найти самую длинную
- // которая является арифметической или геометрической прогрессией
- int a[10]{2, 4, 6, 8, 10, 12, 14, 16, 18, 20}, n, s, d, q; // введите мне массив
- int ar_temp, ar_max, geo_temp, geo_max;
- int temp_d, temp_q;
- int main() {
- n = 10; //внедрить size
- d = a[1] - a[0];
- q = a[1] / a[0]; // НА НУЛЬ ДЕЛИТЬ НЕЛЬЗЯ!!!!
- for (int i = 1; i < (n - 1); i++) {
- // в арифм прогрессии минимум 3 члена
- if (d == (a[i + 1] - a[i])) {
- ++ar_temp;
- if (ar_temp > ar_max) {
- ar_max = ar_temp;
- }
- }
- else { ar_temp = 0; d = a[i + 1] - a[i]; } // он же из циклов не выходит, пока не пройдет n раз
- // в геом прогрессии минимум 3 члена
- if (q == (a[i + 1] / a[i])) {
- ++geo_temp;
- if (geo_temp > geo_max) {
- geo_max = geo_temp;
- }
- else { geo_temp = 0; d = a[i + 1] / a[i]; }
- }
- }
- if (ar_max > geo_max) {
- cout << ar_max;
- } else { cout << geo_max; }
- // а если они равны, выйдет пустота
- }
- // первый и последний член в последовательность не включает
Add Comment
Please, Sign In to add comment