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

Вычислить сумму элементов массива рекурсивно - C++

Восстановить пароль Регистрация
 
Andrewwin100
0 / 0 / 0
Регистрация: 12.02.2011
Сообщений: 65
13.12.2011, 06:27     Вычислить сумму элементов массива рекурсивно #1
Определить сумму элементов данного одномерного массива с использованием рекурсии.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2011, 06:27     Вычислить сумму элементов массива рекурсивно
Посмотрите здесь:

C++ Вычислить сумму рекурсивно
Рекурсивно найти сумму нечетных элементов до заданного n C++
C++ Рекурсивно вычислить произведение отрицательных элементов массива
C++ Рекурсивно определить сумму отрицательных элементов
Вычислить сумму максимального элемента массива и количества нулевых элементов массива C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Heidel
 Аватар для Heidel
110 / 110 / 7
Регистрация: 11.10.2011
Сообщений: 647
13.12.2011, 13:38     Вычислить сумму элементов массива рекурсивно #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
#include <iostream>
#include <ctime>
 
#define n 10
 
// ÐåêóðñèâГ*Г*Гї ГґГіГ*êöèÿ äëÿ âû÷èñëåГ*ГЁГї ñóììû
int summa (int arr[], int i)
{
    int result;
    if (i==0)
    {
        result = arr[0];
        return result;
    }
    else
    {
        result = arr[i] + summa(arr, i-1);
        return result;
    }
}
 
int main ()
{
    srand(time(NULL));
    int a[n];
    std::cout << "Massiv a iz " << n << " elementov\n";
    for (int i = 0; i < n; i++)
    {
        a[i] = rand()%101; //Г§Г*ïîëГ*ГҐГ*ГЁГҐ Г¬Г*Г±Г±ГЁГўГ* a[n] ñëó÷Г*Г©Г*ûìè Г·ГЁГ±Г«Г*ìè Гў äèГ*ГЇГ*çîГ*ГҐ îò 0 äî 100
        std::cout << a[i] << " ";
    }
    
    int S = summa(a, n-1);
 
    std::cout << "\nSumma elementov massiva a\nS = " << S << "\n";
    return 0;
}
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
13.12.2011, 14:52     Вычислить сумму элементов массива рекурсивно #3
Через индексное обращение:
C
1
2
3
4
5
6
7
int Sum(int *a, int n)
{
   return n ? a[n-1] + Sum(a, n-1) : 0;
}
 
int a[N];
Sum(a, N);
через адресное
C
1
2
3
4
5
6
7
8
int Sum(int *a, int *end)
{
   return a < end ? *a + Sum(a+1, end) : 0;
}
 
 
int a[N];
Sum(a, a + N);
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
13.12.2011, 15:47     Вычислить сумму элементов массива рекурсивно #4
C++
1
int sum (int *arr, size_t size) { return size ? *arr + sum ( arr +1 , size - 1 ) : 0 ; }
Yandex
Объявления
13.12.2011, 15:47     Вычислить сумму элементов массива рекурсивно
Ответ Создать тему
Опции темы

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