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

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

Восстановить пароль Регистрация
 
Saniok
0 / 0 / 0
Регистрация: 17.10.2012
Сообщений: 5
13.03.2013, 16:58     Составить программу нахождения произведения нечётных чисел из [a;b] #1
Вот такие задачи надо сделать:

1.Составить программу нахождения произведения нечётных чисел из [a;b].
Спасибo.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2013, 16:58     Составить программу нахождения произведения нечётных чисел из [a;b]
Посмотрите здесь:

C++ Составить программу для нахождения максимального из 4 чисел
Составить программу для вычисления произведения чисел из диапазона от а до b, кратных 6 C++
C++ составить программу нахождения произведения ряда натуральных чисел от 15 до 41
Составить программу нахождения суммы чётных чисел из [a;b] C++
C++ Составить программу для вычисления произведения целых чисел из промежутка от A до B, кратных числу А
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
13.03.2013, 17:53     Составить программу нахождения произведения нечётных чисел из [a;b] #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
int main ()
{
    int fLimit, sLimit;
    std::cout << "Input [a, b]: ";
    std::cin >> fLimit >> sLimit;
 
    int mult = 1;
    for (int i = fLimit; i <= sLimit; i++)
        mult *= (i % 2) ? i : 1;
    std::cout << "Mult: " << mult << std::endl;
 
    return 0;
}
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
13.03.2013, 17:59     Составить программу нахождения произведения нечётных чисел из [a;b] #3
Мне кажется, что без ФВП здесь ну никак не обойтись:

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;
}
Ev[G]eN
13.03.2013, 18:03
  #4

Не по теме:

Nameless One,

srg_btl
13.03.2013, 18:44
  #5

Не по теме:


Действительно Хотят чтоб за них лабораторные делали, пусть и разбираються

Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
13.03.2013, 19:14     Составить программу нахождения произведения нечётных чисел из [a;b] #6
Кстати, если числа заведомо неотрицательные, то можно считать эти суммы/произведения на этапе компиляции:

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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <iostream>
 
template <size_t N>
struct is_odd
{
    static const bool value = !is_odd<N - 1>::value;
};
 
template <>
struct is_odd<0>: public std::false_type
{
};
 
template <size_t N>
struct is_even
{
    static const bool value = !is_odd<N>::value;
};
 
template <size_t X, size_t Y>
struct mult
{
    static const size_t value = X * Y;
};
 
template <size_t X, size_t Y>
struct plus
{
    static const size_t value = X + Y;
};
 
template <bool DoAcc, size_t Rem, size_t Curr, size_t Unit, template <size_t> class Pred, template <size_t, size_t> class BinOp>
struct iter
{
    static const size_t value = BinOp<Curr, iter<Pred<Curr + 1>::value, Rem - 1, Curr + 1, Unit, Pred, BinOp>::value>::value;
};
 
template <size_t Rem, size_t Curr, size_t Unit, template <size_t> class Pred, template <size_t, size_t> class BinOp>
struct iter<false, Rem, Curr, Unit, Pred, BinOp>
{
    static const size_t value = iter<Pred<Curr + 1>::value, Rem - 1, Curr + 1, Unit, Pred, BinOp>::value;
};
 
template <size_t Curr, size_t Unit, template <size_t> class Pred, template <size_t, size_t> class BinOp>
struct iter<false, 0, Curr, Unit, Pred, BinOp>
{
    static const size_t value = Unit;
};
 
template <size_t Curr, size_t Unit, template <size_t> class Pred, template <size_t, size_t> class BinOp>
struct iter<true, 0, Curr, Unit, Pred, BinOp>
{
    static const size_t value = Unit;
};
 
template <size_t First, size_t Last, size_t Unit, template <size_t> class Pred, template <size_t, size_t> class BinOp>
struct reduce_filter
{
    static const size_t value = iter<Pred<First>::value, Last - First + 1, First, Unit, Pred, BinOp>::value;
};
 
int main()
{
    std::cout << "Product of odd numbers in range [1, 7] is "
              << reduce_filter<1, 7, 1, is_odd, mult>::value << std::endl;
    std::cout << "Sum of even numbers in range [1, 7] is "
              << reduce_filter<1, 7, 0, is_even, plus>::value << std::endl;
}
Yandex
Объявления
13.03.2013, 19:14     Составить программу нахождения произведения нечётных чисел из [a;b]
Ответ Создать тему
Опции темы

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