Форум программистов, компьютерный форум CyberForum.ru

Найти самую длинную подпоследовательность, которая является арифметической или геометрической прогрессией - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.64
nikola166
 Аватар для nikola166
8 / 8 / 0
Регистрация: 18.03.2010
Сообщений: 142
18.03.2010, 16:33     Найти самую длинную подпоследовательность, которая является арифметической или геометрической прогрессией #1
В заданной последовательности целых чисел (без 0) найти самую длинную подпоследовательность, которая является арифметической или геометрической прогрессией. Последовательность забиваем через массив, помагите пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.03.2010, 16:33     Найти самую длинную подпоследовательность, которая является арифметической или геометрической прогрессией
Посмотрите здесь:

Определить является ли последовательность арифметической прогрессией C++
C++ Определить, является ли целочисленный массив арифметической или геометрической прогрессией.
C++ Написать программу, которая определяет самую длинную серию одинаковых элементов матрицы
C++ Проверить, является ли последовательность прогрессией или нет?
Найти в матрице самую длинную цепочку подряд стоящих 0 по горизонтали или вертикали C++
C++ Написать функцию, которая находит самую длинную ветку в дереве
Является ли одномерный массив геометрической прогрессией? C++
Определить, является ли данная последовательность арифметической прогрессией C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Грымзик
 Аватар для Грымзик
2466 / 1443 / 31
Регистрация: 14.09.2009
Сообщений: 2,742
18.03.2010, 17:34     Найти самую длинную подпоследовательность, которая является арифметической или геометрической прогрессией #2
Элементы массивов len_geom[i] и len_arifm[i] показывают какая длинна максимально геометрической или арифметической прогрессии соответственно, заканчивающейся на i-ом элементе последовательности.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <iostream>
using namespace std;
 
int main()
{
        int a[]={1,2,4,8,16,32,64,127,1,2,3,4,5,7,9,11,13,15,17,19,20,6};
        int N=21, len_arifm[100],len_geom[100],ans_arifm=1,ans_geom=1,i;
        len_arifm[1]=2;
        len_geom[1]=2;
        for (i=2; i<N; ++i)
        {
                if(a[i]-a[i-1]==a[i-1]-a[i-2])
                        len_arifm[i]=len_arifm[i-1]+1;
                else len_arifm[i]=2;
                if(a[i-1]*a[i-1]==a[i]*a[i-2])
                        len_geom[i]=len_geom[i-1]+1;
                else len_geom[i]=2;
                if(len_arifm[i]>len_arifm[ans_arifm])
                        ans_arifm=i;
                if(len_geom[i]>len_geom[ans_geom])
                        ans_geom=i;
        }
        cout<<"Naibolshaya arifmeticheskaya progressiya: ";
        for (i=ans_arifm-len_arifm[ans_arifm]+1; i<=ans_arifm;++i)
                cout<<a[i]<<' ';
        cout<<"Dlinna: "<<len_arifm[ans_arifm]<<endl;
        cout<<"Naibolshaya geometriceskaya progressiya: ";
        for (i=ans_geom-len_geom[ans_geom]+1; i<=ans_geom;++i)
                cout<<a[i]<<' ';
        cout<<"Dlinna: "<<len_geom[ans_geom]<<endl;
        if (len_arifm[ans_arifm]>=len_geom[ans_geom])
               cout<<"Resheniem zadachi yavlyaetsya ukazannaya arifmeticheskaya progressiya"<<endl;
        else cout<<"Resheniem zadachi yavlyaetsya ukazannaya geometricheskaya progressiya"<<endl;
        system("PAUSE");
        return 0;
}
nikola166
 Аватар для nikola166
8 / 8 / 0
Регистрация: 18.03.2010
Сообщений: 142
18.03.2010, 18:14  [ТС]     Найти самую длинную подпоследовательность, которая является арифметической или геометрической прогрессией #3
спасибо огромное
Yandex
Объявления
18.03.2010, 18:14     Найти самую длинную подпоследовательность, которая является арифметической или геометрической прогрессией
Ответ Создать тему
Опции темы

Текущее время: 16:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru