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

Геометрическая прогрессия - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
vintage_mickey
0 / 0 / 0
Регистрация: 19.01.2011
Сообщений: 3
19.01.2011, 19:47     Геометрическая прогрессия #1
Задача:
Дано N десятоков целых чисел. Определить, сколько из них могут составлять геометрическую прогрессию. Проверку оформить в виде функции.

Помогите кто чем может)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2011, 19:47     Геометрическая прогрессия
Посмотрите здесь:

Геометрическая прогрессия C++
геометрическая прогрессия C++
прогрессия C++
C++ Геометрическая прогрессия C++
Геометрическая прогрессия и ошибка в повторениях C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
19.01.2011, 20:26     Геометрическая прогрессия #2
vintage_mickey, http://www.cyberforum.ru/cpp-beginne...tml#post714276
vintage_mickey
0 / 0 / 0
Регистрация: 19.01.2011
Сообщений: 3
19.01.2011, 20:41  [ТС]     Геометрическая прогрессия #3
спасибо огромное!))

Добавлено через 12 минут
а на с++ нету решения?
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
19.01.2011, 20:43     Геометрическая прогрессия #4
Цитата Сообщение от vintage_mickey Посмотреть сообщение
а на с++ нету решения?
Ето и есть с++!!!
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
19.01.2011, 22:13     Геометрическая прогрессия #5
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
37
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
 
void fin(vector<int>& v, vector<int>& res){
    vector<int> temp;
    float denom;
    for(int i=0;i<v.size();i++){
        temp.push_back(v[i]);
        for(int j=i+1;j<v.size();j++){
            temp.push_back(v[j]);
            denom=(float)v[i]/v[j];
            for(int k=j+1;k<v.size();k++){
                if(v[k]*denom==*(temp.end()-1)) temp.push_back(v[k]);
            }
            if(temp.size()>res.size()){
                res.assign(temp.begin(), temp.end());
            }
            temp.erase(temp.begin()+1, temp.end());
        }
        temp.clear();
    }
}
 
int main(){
    vector<int> v, res;
    int val;
    while(cin>>val) v.push_back(val);
    sort(v.begin(), v.end(), [](int a, int b){return a>b;});
    vector<int>::iterator new_end = unique(v.begin(), v.end());
    v.erase(new_end, v.end());
    fin(v, res);
    cout<<"\n\nres: \n";
    for(int i=0;i<res.size();i++)
        cout<<res[i]<<"  ";
}
mifeliz
 Аватар для mifeliz
2 / 2 / 0
Регистрация: 18.01.2011
Сообщений: 35
19.01.2011, 22:19     Геометрическая прогрессия #6
igorrr37, sort(v.begin(), v.end(), [](int a, int b){return a>b;});

вот на это ругается...не компилится...DEV++
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.01.2011, 22:37     Геометрическая прогрессия
Еще ссылки по теме:

Геометрическая прогрессия: какой тип данных определить C++
Геометрическая прогрессия из цифр в числе C++
C++ Геометрическая прогрессия на шахматной доске

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

Или воспользуйтесь поиском по форуму:
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
19.01.2011, 22:37     Геометрическая прогрессия #7
да, забыл. тогда так
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
37
38
39
40
41
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
 
bool comp(int a, int b){
    return a>b;
}
 
void fin(vector<int>& v, vector<int>& res){
    vector<int> temp;
    float denom;
    for(int i=0;i<v.size();i++){
        temp.push_back(v[i]);
        for(int j=i+1;j<v.size();j++){
            temp.push_back(v[j]);
            denom=(float)v[i]/v[j];
            for(int k=j+1;k<v.size();k++){
                if(v[k]*denom==*(temp.end()-1)) temp.push_back(v[k]);
            }
            if(temp.size()>res.size()){
                res.assign(temp.begin(), temp.end());
            }
            temp.erase(temp.begin()+1, temp.end());
        }
        temp.clear();
    }
}
 
int main(){
    vector<int> v, res;
    int val;
    while(cin>>val) v.push_back(val);
    sort(v.begin(), v.end(), comp);
    vector<int>::iterator new_end = unique(v.begin(), v.end());
    v.erase(new_end, v.end());
    fin(v, res);
    cout<<"\n\nres: \n";
    for(int i=0;i<res.size();i++)
        cout<<res[i]<<"  ";
}
Yandex
Объявления
19.01.2011, 22:37     Геометрическая прогрессия
Ответ Создать тему
Опции темы

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