Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ <vector> http://www.cyberforum.ru/cpp-beginners/thread106144.html
Здрасти. Почиму, если не поставить значок адреса в первой строке, то в майне массив не выводится на экран? void getline(vector<int> &array){ int inputVal=0; cout<<"vedite chislo";...
C++ Длина строки - вопросец. int le(char array) { int i; for(i=0;array != NULL;i++); return i; } http://www.cyberforum.ru/cpp-beginners/thread106106.html
C++ "Идентификатор не найден"
Народ, такая проблема: Собрал полностью проект, но при полной компиляции всех составных частей проекта, выдает ошибку, что идентификатор не найден, т.е. он не может соединить все мои файлы:...
Разделить файл на слова C++
Вот и мне пришло время задать вопрос. :) Неважно, будете ли вы писать на C или C++, использовать String или char. Необходимо сделать следующее: I. При запуске программы 1 параметром передаётся...
C++ Массив по значению http://www.cyberforum.ru/cpp-beginners/thread106058.html
Не понимаю суть самой задачи. Разъясните пожалуйста, и подскажите с чего начать! "Написать программу, которая позволит ввести с клавиатуры число x типа uint, создать и вывести на дисплей массив...
C++ overloaded member function not found Что означает данное сообщение об ошибке - 'counter counter::operator +(counter &)' : overloaded member function not found in 'counter' Можно ли исправить или такого варианта решения не существует?... подробнее

Показать сообщение отдельно
Грымзик
2467 / 1444 / 31
Регистрация: 14.09.2009
Сообщений: 2,742
18.03.2010, 17:34
Элементы массивов 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;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru