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

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

Войти
Регистрация
Восстановить пароль
 
RidoTTi
1 / 1 / 0
Регистрация: 11.06.2012
Сообщений: 34
#1

Рекурсия: подсчет суммы всех четных чисел от 2 до 15 - C++

05.01.2013, 02:44. Просмотров 554. Ответов 4
Метки нет (Все метки)

Здравствуйте, нужна ваша помощь уважаемые!
Никак не могу осилить..

Напишите рекурсивную функцию расчета суммы всех четных чисел от 2 до 15.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2013, 02:44     Рекурсия: подсчет суммы всех четных чисел от 2 до 15
Посмотрите здесь:

Рекурсия: подсчет количества четных цифр числа (на С) C++
Подсчет количества, суммы и произведения четных положительных элементов массива C++
C++ Подсчет суммы всех чисел до заданного числа, используя рекурсию
C++ Подсчет суммы чисел, состоящих из неодинаковых чисел
Числа. Подсчитать количество четных и нечетных чисел- разрядов. Найти суммы только всех четных и только нечетных, проверить какая из сумм больше C++
C++ Вычисление суммы четных и суммы нечетных чисел в одномерном массиве
Матрица.В матрице A(6; 6) найти произведение суммы четных чисел в 3-ей строке и суммы отрицательных чисел 1-го столбца C++
Вычисление суммы квадратов четных чисел и суммы кубов нечетных чисел C++
C++ Подсчет всех четных чисел из диапазона от А до B, кратных трем
C++ Циклы: найти суммы всех четных/нечетных чисел от 1 до n
Подсчет произведения всех элементов массива (цикл и рекурсия) C++
C++ Даны три целых числа. Вычесть из суммы всех чисел сумму четных чисел

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Pakisan
14 / 14 / 1
Регистрация: 04.01.2013
Сообщений: 61
05.01.2013, 06:00     Рекурсия: подсчет суммы всех четных чисел от 2 до 15 #2
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
#include <iostream>
#include <cstdlib>
using namespace std;
 
const int size = 6; // Размер массива для хранения чисел
double numbers[size]; // Массив для хранения чисел
int sum,x=0;
int a;
double b;
 
void fmass(double *massive); // прототип функции для заполнения массива
int recsum(double *massive);
 
void main()
{
    fmass(numbers);
    recsum(numbers);
    cout<<'\n'<<sum;
    system("pause");
}
 
void fmass(double *massive)
{
    // Заполняем массив
    for(int y=0;y!=size;y++)
        cin>>massive[y];
}
 
int recsum(double *massive)
{
    if(x==size)
        return 1;
    a=massive[x]/2;
    b=massive[x]/2;
    if(a==b)
        sum++;
    x++;
    return recsum(massive);
}
Примитив

Добавлено через 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
#include <iostream>
#include <cstdlib>
using namespace std;
 
const int size = 6; // Размер массива для хранения чисел
double numbers[size]; // Массив для хранения чисел
int sum,x=0;
int a;
double b;
 
void fmass(double *massive); // прототип функции для заполнения массива
int recsum(double *massive);
 
void main()
{
    fmass(numbers);
    recsum(numbers);
    cout<<'\n'<<sum;
    system("pause");
}
 
void fmass(double *massive)
{
    // Заполняем массив
    for(int y=0;y!=size;y++)
        cin>>massive[y];
}
 
int recsum(double *massive)
{
    if(x==size)
        return 1;
    a=massive[x]/2;
    b=massive[x]/2;
    if(a==b)
        sum+=massive[x];
    x++;
    return recsum(massive);
}

Выше с подсчетом четных, а тут сумма
FreeMinder
36 / 36 / 2
Регистрация: 29.08.2012
Сообщений: 59
05.01.2013, 06:55     Рекурсия: подсчет суммы всех четных чисел от 2 до 15 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
 
int Sum(int x, int& sum)
{
    if(x == 15)
        return sum;
    if(x % 2 == 0)
        sum+=x;
    Sum(++x,sum);
}
 
int main()
{
    int sum=0;
    std::cout<<Sum(2, sum);
    return 1;
}
Добавлено через 16 минут
а если подумать, то:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
 
int Sum(int x)
{
    static int sum = 0;
    if(x == 15)
        return sum;
    if(x % 2 == 0)
        sum+=x;
    Sum(++x);
}
 
int main()
{
    std::cout<<Sum(2);
    return 1;
}
RidoTTi
1 / 1 / 0
Регистрация: 11.06.2012
Сообщений: 34
05.01.2013, 13:24  [ТС]     Рекурсия: подсчет суммы всех четных чисел от 2 до 15 #4
выводит ошибку в строке - Sum(++x);
Croessmah
Модератор
Эксперт CЭксперт С++
12890 / 7276 / 811
Регистрация: 27.09.2012
Сообщений: 17,976
Записей в блоге: 2
Завершенные тесты: 1
05.01.2013, 14:19     Рекурсия: подсчет суммы всех четных чисел от 2 до 15 #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
#include <iostream>
 
class foo{
private:
    static int summ(int n, int& _max){
        if(!(n<_max)) return 0;
        return n+summ(n+2,_max);
    }
public:
    static int GetSumm(int _min, int _max){
        if(_max<_min){
            int temp=_max;
            _max=_min;
            _min=temp;
        }
        if (_min%2)
            ++_min;
        return summ(_min,_max);
    }
};
 
int main(){
    std::cout<<foo::GetSumm(15,2)<<std::endl;
    return 0;
}
Yandex
Объявления
05.01.2013, 14:19     Рекурсия: подсчет суммы всех четных чисел от 2 до 15
Ответ Создать тему
Опции темы

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