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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ <vector> http://www.cyberforum.ru/cpp-beginners/thread106144.html
Здрасти. Почиму, если не поставить значок адреса в первой строке, то в майне массив не выводится на экран? void getline(vector<int> &array){ int inputVal=0; cout<<"vedite chislo"; while(inputVal!=666){ cin>>inputVal; array.push_back(inputVal);
C++ Длина строки - вопросец. int le(char array) { int i; for(i=0;array != NULL;i++); return i; } http://www.cyberforum.ru/cpp-beginners/thread106106.html
C++ идентификатор не найден!!!
Народ, такая проблема: Собрал полностью проект, но при полной компиляции всех составных частей проекта, выдает ошибку, что идентификатор не найден, т.е. он не может соединить все мои файлы: ========================= switch() { case '1': program1(); break; case '2': program2(); break; case '3': program3(); break; ====================
C++ Массив по значению
Не понимаю суть самой задачи. Разъясните пожалуйста, и подскажите с чего начать! "Написать программу, которая позволит ввести с клавиатуры число x типа uint, создать и вывести на дисплей массив a, в котором a=значению бита числа x." Подскажите еще, как это написать в С++. Какой массив сооздавать? Для меня это пока непонятно!
C++ overloaded member function not found http://www.cyberforum.ru/cpp-beginners/thread106049.html
Что означает данное сообщение об ошибке - 'counter counter::operator +(counter &)' : overloaded member function not found in 'counter' Можно ли исправить или такого варианта решения не существует? #include<iostream> using namespace std; class counter { public: counter(); counter(int initVal);
C++ Объявление динамического массива указателей как объявить динамический массив указателей? я знаю что обычный динамический массив записывать, например, так: ... char *array = new char; ... а как массив указателей не знаю. Подскажите пожалуйста. подробнее

Показать сообщение отдельно
Грымзик
 Аватар для Грымзик
2466 / 1443 / 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;
}
 
Текущее время: 03:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru