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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.72
Filthy
0 / 0 / 0
Регистрация: 13.12.2010
Сообщений: 6
#1

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

11.01.2011, 21:51. Просмотров 3518. Ответов 2
Метки нет (Все метки)

Дано N десятоков целых чисел. Определить, сколько из них могут составлять арифметическую прогрессию. Проверку оформить в виде функции.

Вот ее сделать и зачет.

Добавлено через 4 часа 3 минуты
Актуально,нужно позарез.
Спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2011, 21:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Арифметическая прогрессия (C++):

Арифметическая прогрессия - C++
народ помогите отпишитесь кто знает как работает программа??? #include <iostream> #include <stdio.h> #include <stdlib.h> using...

Арифметическая прогрессия - C++
Вообщем, поиск по форму ничего не дал, а с++ я помню плохо. Есть задачка, дана последовательность, скажем из 5 чисел, в виде массив,...

Арифметическая прогрессия - C++
Здравствуйте, помогите со способом выполнения задания. Задание: Пользователь задает n кол-во целых чисел, необходимо определить можно ли...

Арифметическая прогрессия - C++
Добрый день всем, пытаюсь решить но никак помогите пожалуйста: На вход программы подаются три целых числа a1, a2 и n. a1 и a2 первые ...

Арифметическая прогрессия - C++
Задан целочисленный массив размера N. Определить, образуют ли элементы массива арифметическую прогрессию.

Арифметическая прогрессия - C++
Вычислить (1+1/1^2)+(1+1/2^2)+(1+1/3^2)+...+(1+1/100^2). Найдите ошибку: #include <iostream> using namespace std; int main(){ ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Bonita575
0 / 0 / 0
Регистрация: 11.01.2011
Сообщений: 3
11.01.2011, 22:46 #2
Mr.X!!!!!!

Добавлено через 36 секунд
Mr.X мне срочно нужна ваша аська!!!! или скайп
Mr.X
Эксперт С++
3049 / 1694 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
11.01.2011, 23:46 #3
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
//////////////////////////////////////////////////////////////////////////////////////
//Дано N десятоков целых чисел. Определить, сколько из них могут составлять 
//арифметическую прогрессию. Проверку оформить в виде функции.
//////////////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <cstdlib>
#include <ctime>
#include <iostream>
#include <vector>
//////////////////////////////////////////////////////////////////////////////////////
typedef int                 T_num;
typedef std::vector<T_num>  T_nums;
//////////////////////////////////////////////////////////////////////////////////////
T_nums  get_max_arithm_progr(T_nums  nums)
{
    std::sort(nums.begin(), nums.end()); 
    T_nums  progr_max;
    for(size_t  i = 0; i < nums.size() - 1 - 2; ++i)
    {
        for(size_t  j = i + 1; j < nums.size() - 1 - 1; ++j)
        {
            T_nums  progr_i_j;
            progr_i_j.push_back(nums[i]);
            progr_i_j.push_back(nums[j]);
            int  d = nums[j] - nums[i];
            if(d == 0) continue;
            int  val_next  = nums[j];
            while(
                      (val_next += d) <= nums.back()
                   && std::binary_search(nums.begin(), nums.end(), val_next)
                 )
            {
                progr_i_j.push_back(val_next);
            }
 
            if(progr_max.size() < progr_i_j.size())
            {
                progr_max = progr_i_j;
            }            
        }      
    }
    return  progr_max;
}
//////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));   
    srand(static_cast<unsigned>(time(0)));
    const  int N     = 10;   
    int    arr_size  = N * 10;
 
    struct  T_generate_int_with_mod
    {
        const int MOD_;
        T_generate_int_with_mod(int mod) : MOD_(mod)
        {}
        //----------------------------------------------------------------------------
        int  operator() ()
        {
            return rand() % MOD_ - MOD_ / 2;
        }
    };
    T_nums  nums;
    std::generate_n(std::back_inserter(nums), arr_size, T_generate_int_with_mod(arr_size * 3));
    std::sort(nums.begin(), nums.end());
    std::copy(nums.begin(), nums.end(), std::ostream_iterator<T_num>(std::cout, "\t"));
    
    T_nums  max_arithm_progr = get_max_arithm_progr(nums);
    std::cout << "Из элементов этого вектора можно составить наибольшую арифметическую прогрессию "              
              << "размером "
              << max_arithm_progr.size()
              << " следующего вида:"
              << std::endl;
 
    std::copy(max_arithm_progr.begin(), max_arithm_progr.end(), 
              std::ostream_iterator<T_num>(std::cout, "\t"));
    std::cout << std::endl;
}
Добавлено через 7 минут
Цитата Сообщение от Bonita575 Посмотреть сообщение
Mr.X!!!!!!

Добавлено через 36 секунд
Mr.X мне срочно нужна ваша аська!!!! или скайп
А в личку чего не пишете?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.01.2011, 23:46
Привет! Вот еще темы с ответами:

Арифметическая прогрессия - C++
Надо составить программу возведения натурального числа в квадрат, учитывая следующую закономерность: 12 = 1 22 = 1 + 3 32 = 1 + 3 + 5...

Арифметическая прогрессия - C++
Вывести на экран 7ой член прогрессии если числа находящиеся по соседству различаются в 5 раз, а первое число равен 3ем Добавлено через...

Прогрессия Арифметическая - C++
Добрый день! Я к сожалению, вообще не могу разобраться даже в елементарных вещах. Помогите пожалуйста написать формулу для...

Арифметическая прогрессия в массиве - C++
Дан целочисленный массив размером N, который не содержит одинаковых чисел. Проверить, образуют ли его элементы арифметическую прогрессию....


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru