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

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

Восстановить пароль Регистрация
 
RidoTTi
1 / 1 / 0
Регистрация: 11.06.2012
Сообщений: 34
05.01.2013, 02:44     Рекурсия: подсчет суммы всех четных чисел от 2 до 15 #1
Здравствуйте, нужна ваша помощь уважаемые!
Никак не могу осилить..

Напишите рекурсивную функцию расчета суммы всех четных чисел от 2 до 15.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
 Аватар для 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
Модератор
Эксперт С++
 Аватар для Croessmah
11827 / 6806 / 769
Регистрация: 27.09.2012
Сообщений: 16,878
Записей в блоге: 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
Ответ Создать тему
Опции темы

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