Форум программистов, компьютерный форум, киберфорум
Наши страницы

Составить программу нахождения произведения нечётных чисел из [a;b] - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ почему выдаёт эту ошибку declaration terminated incorrectly? http://www.cyberforum.ru/cpp-beginners/thread807561.html
C++ Не могу найти ошибку Добрый день, вот простенькая задача: "В одном шаге от счастья" Вова купил билет в трамвае 13-го маршрута и сразу посчитал суммы первых трёх цифр и последних трёх цифр номера билета (номер у... http://www.cyberforum.ru/cpp-beginners/thread807557.html
Рекурсия (решение уравнений) C++
Помогите написать программу используя рекурсию. Ниже прикреплён сам файл с уравнениями. За ранее спасибо.
Ключ в сортировках C++
часто вижу предложения с употреблением слова "Ключ", но как он выглядит или что он из себя представляет я понять не могу.
C++ Автоматизированная информационно-поисковая система «Справочник спортивного фаната» http://www.cyberforum.ru/cpp-beginners/thread807529.html
(ООП) Автоматизированная информационно-поисковая система «Справочник спортивного фаната»
C++ Сортировка слов в предложении по алфавиту доброго времени суток! у меня такая проблема - нужно распечатать в алфавитном порядке слова из предложения. так вот, когда на английском вводятся слова, все норм, а на русском какие то закорючки...... подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
13.03.2013, 17:59
Мне кажется, что без ФВП здесь ну никак не обойтись:

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
#include <iostream>
#include <functional>
#include <vector>
#include <iterator>
#include <algorithm>
#include <numeric>
 
template <class InputIterator, class T, class Pred, class BinaryOp>
T reduce_filter(InputIterator first, InputIterator last, T init, Pred pred, BinaryOp op)
{
    for(; first != last; ++first)
        if(pred(*first))
            init = op(init, *first);
    return init;
}
 
int main()
{
    int left, right;
 
    std::cout << "Enter range: " << std::flush;
    std::cin >> left >> right;
 
    if(left > right)
    {
        std::cerr << "Illegal range" << std::endl;
        return 1;
    }
 
    std::vector<int> nums(right - left + 1);
    std::iota(nums.begin(), nums.end(), left);
 
    std::cout << "Numbers are: " << std::endl;
    std::copy(nums.begin(), nums.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl << "Sum of even numbers: "
              << reduce_filter(nums.begin(), nums.end(), 0, [](int i) {return !(i & 1);}, std::plus<int>())
              << std::endl << "Product of odd numbers: "
              << reduce_filter(nums.begin(), nums.end(), 1, [](int i) {return i & 1;}, std::multiplies<int>())
              << std::endl;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru