Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
403 / 261 / 167
Регистрация: 13.01.2021
Сообщений: 1,162
1

Создать функцию, подсчитывающую сумму элементов массива по указанному алгоритму

11.05.2022, 16:03. Показов 711. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Создайте функцию, подсчитывающую сумму элементов массива по следующему
алгоритма: массив делится пополам, подсчитываются и прилагаются суммы
элементы в каждой половине. Сумма элементов в половине массива происходит
по тому же алгоритму, то есть, снова путем деления пополам. Деления
происходят, пока в полученных частях массива не окажется по
одному элементу и исчислению суммы, соответственно не станет тривиальным.

Добавлено через 15 минут
Функция должна быть рекурсивной.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.05.2022, 16:03
Ответы с готовыми решениями:

Реализовать функцию, подсчитывающую сумму положительных элементов в массиве
Функция, подсчитывающая сумму положительных элементов в массиве Использование перегрузки функций...

Описать функцию подсчитывающую сумму нечётных элементов множества
Прошу написать программу по данному заданию.

Реализовать функцию, подсчитывающую сумму положительных элементов в массиве
описать шаблон функции: Функция, подсчитывающая сумму положительных элементов в массиве

Описать функцию neg, подсчитывающую сумму отрицательных элементов в файле s
Описать функцию neg, подсчитывающую сумму отрицательных элементов в файле s. Программа: введите...

Написать рекурсивную числовую функцию, подсчитывающую сумму элементов дерева
Написать рекурсивную числовую функцию, подсчитывающую сумму элементов дерева. Подразумевается...

6
4773 / 2582 / 894
Регистрация: 29.11.2010
Сообщений: 5,590
11.05.2022, 16:10 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
template<typename T, typename Iterator>
T sum(Iterator begin, Iterator end) {
    if (begin + 1 == end) {
        return *begin;
    }
    Iterator middle = begin + (end - begin) / 2;
    return sum<T, Iterator>(begin, middle) + sum<T, Iterator>(middle, end);
}
 
int main() {
    int array[] = {1, 2, 3, 4, 5};
 
    int size = sizeof array / sizeof array[0];
    std::cout << sum<int>(array, array + size);
 
    return 0;
}
1
403 / 261 / 167
Регистрация: 13.01.2021
Сообщений: 1,162
11.05.2022, 16:57  [ТС] 3
lemegeton, а можешь показать без итераторов как реализовать? И без шаблона
0
4773 / 2582 / 894
Регистрация: 29.11.2010
Сообщений: 5,590
11.05.2022, 18:05 4
Лучший ответ Сообщение было отмечено kirigaua как решение

Решение

Итератор это просто слово.
Шаблон делает функцию более универсальной.
Убери template<...>, замени T на int, а Iterator на int* и всё.

Шучу. Конечно я всё это за тебя сам сделаю:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
int sum(int* begin, int* end) {
    if (begin + 1 == end) {
        return *begin;
    }
    int *middle = begin + (end - begin) / 2;
    return sum(begin, middle) + sum(middle, end);
}
 
int main() {
    int array[] = {1, 2, 3, 4, 5};
 
    int size = sizeof array / sizeof array[0];
    std::cout << sum(array, array + size);
 
    return 0;
}
Добавлено через 3 минуты

Не по теме:

Цитата Сообщение от kirigaua Посмотреть сообщение
И без шаблона
... и без указателей... и без ифа... и без функции... и вообще, без кода!

0
1352 / 851 / 365
Регистрация: 26.02.2015
Сообщений: 3,799
11.05.2022, 18:32 5
lemegeton, почему не используешь https://en.cppreference.com/w/cpp/iterator/size ?
0
403 / 261 / 167
Регистрация: 13.01.2021
Сообщений: 1,162
11.05.2022, 19:02  [ТС] 6
lemegeton, да просто времени, не было, серьезно извини.
0
4773 / 2582 / 894
Регистрация: 29.11.2010
Сообщений: 5,590
11.05.2022, 22:14 7
Цитата Сообщение от Nishen Посмотреть сообщение
lemegeton, почему не используешь https://en.cppreference.com/w/cpp/iterator/size ?
Хз. Чёт не использую. Мне вообще не приходится ничего подобного писать. )))
Я попробую.
0
11.05.2022, 22:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.05.2022, 22:14
Помогаю со студенческими работами здесь

Описать функцию poz(s), подсчитывающую сумму положительных элементов в файле s
мне со школой не повезло. на информатике в интернете сидели, а в универе паскаль... все в быстром...

Написать рекурсивную числовую функцию, подсчитывающую сумму элементов дерева
Написать рекурсивную числовую функцию, подсчитывающую сумму элементов дерева. Полноэкранное...

Описать функцию отриц (s), подсчитывающую сумму отрицательных элементов в серии s
type серия = file of real; Описать функцию отриц(s), подсчитывающую сумму отрицательных элементов в...

Написать рекурсивную числовую функцию, подсчитывающую сумму элементов дерева
Написать рекурсивную числовую функцию, подсчитывающую сумму элементов дерева.

Определить сумму цифр в каждой из них (создать функцию, подсчитывающую сумму цифр)
Даны 2 строки. Определить сумму цифр в каждой из них (создать функцию, подсчитывающую сумму цифр)

Подпрограммы. Описать функцию neg(s), подсчитывающую сумму отрицательных элементов в файле
Народ помогите пожалуйста!Заранее спасибо! type seria = file of integer; var s:seria; Описать...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru