Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Pipo
0 / 0 / 1
Регистрация: 16.02.2017
Сообщений: 16
#1

Найти сумму всех идущих подряд нечётных, находящихся в начале заданной последовательности - C++

16.02.2017, 15:19. Просмотров 274. Ответов 14
Метки нет (Все метки)

Как реализовать данный алгоритм?
0
Миниатюры
Найти сумму всех идущих подряд нечётных, находящихся в начале заданной последовательности  
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.02.2017, 15:19
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Найти сумму всех идущих подряд нечётных, находящихся в начале заданной последовательности (C++):

Дана последовательность из N вещественных чисел. Первое число в последовательности нечетное. Найти сумму всех идущих подряд в начале последовательност
Дана последовательность из N вещественных чисел. Первое число в...

Определить, имеются ли в заданной последовательности 4 подряд идущих числа, кратных 7; найти сумму таких чисел
Здравствуйте. Напишите, пожалуйста, код для этого задания (желательно с...

В заданной матрице найти сумму элементов, находящихся в нечётных столбцах
ОТДЕЛКА двумерный массив Задано двухмерный массив (матрицу) А размером m × x....

Найти в последовательности чисел два подряд идущих нуля
Дана последовательность из n чисел найти в ней кол-во 2 подряд идущих 0 Нужно...

В последовательности найти наиболее длинную последовательность подряд идущих нулей
Дана последовательность из n вещественных чисел. Найти наиболее длинную...

Найти в последовательности, количество пар подряд идущих отрицательных элементов
Задача звучит так: Найти в последовательности чисел, заданных пользователем с...

14
MrGluck
Модератор
Эксперт CЭксперт С++
8021 / 4864 / 1425
Регистрация: 29.11.2010
Сообщений: 13,241
16.02.2017, 15:26 #2
Что за бред? Понятие чётности относится к целым числам.
0
Pipo
0 / 0 / 1
Регистрация: 16.02.2017
Сообщений: 16
16.02.2017, 15:28  [ТС] #3
Согласен, пусть будут целые числа.
0
MrGluck
Модератор
Эксперт CЭксперт С++
8021 / 4864 / 1425
Регистрация: 29.11.2010
Сообщений: 13,241
16.02.2017, 15:31 #4
C++
1
2
3
4
5
6
7
8
9
10
#include <algorithm>
#include <iostream>
#include <iterator>
#include <numeric>
 
int main()
{
    constexpr int arr[] = { 3, 5, 7, 9, 2, 0, 1 };
    std::cout << std::accumulate(std::cbegin(arr), std::find_if_not(std::cbegin(arr), std::cend(arr), [](const int x) { return x & 1; }), 0);
}
0
Pipo
0 / 0 / 1
Регистрация: 16.02.2017
Сообщений: 16
16.02.2017, 15:33  [ТС] #5
MrGluck, а возможно решить без массивов?
0
MrGluck
Модератор
Эксперт CЭксперт С++
8021 / 4864 / 1425
Регистрация: 29.11.2010
Сообщений: 13,241
16.02.2017, 15:35 #6
Pipo, там по условию уже дана последовательность. Вы предлагаете считывать с клавиатуры пока не будет введено чётное число?
0
Pipo
0 / 0 / 1
Регистрация: 16.02.2017
Сообщений: 16
16.02.2017, 15:38  [ТС] #7
MrGluck, вроде бы, нужно ввести с клавиатуры n целых чисел и затем вывести сумму идущих подряд нечётных. Причем ввести первое нечетное.
0
MrGluck
Модератор
Эксперт CЭксперт С++
8021 / 4864 / 1425
Регистрация: 29.11.2010
Сообщений: 13,241
16.02.2017, 15:44 #8
Лучший ответ Сообщение было отмечено Pipo как решение

Решение

Цитата Сообщение от Pipo Посмотреть сообщение
вроде бы, нужно ввести с клавиатуры n целых чисел и затем вывести сумму идущих подряд нечётных.
Учитывая, что в задании говорится про нечётные числа в начале последовательности, то не понятно, зачем нужно продолжать ввод после чётного числа?

Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
 
int main()
{
    constexpr int N = 10;
    int sum = 0;
    for (int x, i = 0; i < N && std::cin >> x && x & 1; i++)
        sum += x;
    std::cout << sum;
}
0
Pipo
0 / 0 / 1
Регистрация: 16.02.2017
Сообщений: 16
16.02.2017, 15:45  [ТС] #9
MrGluck, Но нужно же ввести эти n чисел. А затем посчитать сумму идущих в начале подряд нечётных.
0
MrGluck
Модератор
Эксперт CЭксперт С++
8021 / 4864 / 1425
Регистрация: 29.11.2010
Сообщений: 13,241
16.02.2017, 15:54 #10
Цитата Сообщение от Pipo Посмотреть сообщение
Но нужно же ввести эти n чисел. А затем посчитать сумму идущих в начале подряд нечётных.
Вот ваш бред:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
int main()
{
    constexpr int N = 10;
    int sum = 0;
    bool flag = true;
    for (int x, i = 0; i < N && std::cin >> x; i++)
    {
        if (!(x & 1))
            flag = false;
        if (flag)
            sum += x;
    }
    std::cout << sum;
}
0
gru74ik
Модератор
Эксперт CЭксперт С++
4648 / 1962 / 293
Регистрация: 20.02.2013
Сообщений: 5,225
Записей в блоге: 23
16.02.2017, 15:55 #11
 Комментарий модератора 
Pipo,пожалуйста, прочитайте правила форума.
Особое внимание обратите на следующие пункты:Условие задачи перепечатайте непосредственно в тело сообщения.

.
0
Pipo
0 / 0 / 1
Регистрация: 16.02.2017
Сообщений: 16
16.02.2017, 15:56  [ТС] #12
MrGluck, Нужно бы без операторов условных. Но спасибо за помощь!)
0
MrGluck
Модератор
Эксперт CЭксперт С++
8021 / 4864 / 1425
Регистрация: 29.11.2010
Сообщений: 13,241
16.02.2017, 16:41 #13
Pipo, так тут в любом случае нужна проверка т.к. числа могут быть и чётными.
0
Pipo
0 / 0 / 1
Регистрация: 16.02.2017
Сообщений: 16
16.02.2017, 16:42  [ТС] #14
MrGluck, Вот решение на Паскале))
Pascal
1
2
3
4
5
6
7
8
9
10
11
var a, n, i, s: integer;
begin
  s := 0;
  readln(n);
  for i := 1 to n do
  begin
    readln(a);
    s := s + a * (a mod 2);
  end;
  writeln('Сумма нечётных чисел равна ', s);
end.
0
MrGluck
Модератор
Эксперт CЭксперт С++
8021 / 4864 / 1425
Регистрация: 29.11.2010
Сообщений: 13,241
16.02.2017, 16:50 #15
Цитата Сообщение от Pipo Посмотреть сообщение
Вот решение на Паскале))
У вас считаются все нечётные числа, а в задании говорится про первую последовательность.

Добавлено через 2 минуты
Вот без явного использования оператора if
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
int main()
{
    constexpr int N = 10;
    int sum = 0;
    bool flag = true;
    for (int x, i = 0; i < N && std::cin >> x; i++)
    {
        flag &= (x & 1);
        sum += x * flag;
    }
    std::cout << sum;
}
0
16.02.2017, 16:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2017, 16:50
Привет! Вот еще темы с решениями:

Найти сумму всех младших разрядов для каждого элемента заданной последовательности
Помогите пожалуйста решить задачу, есть решение но не правильно решает, вроде...

Создать массив A(n) и найти длину самойдлиной последовательности подряд идущих элементов
Задан числовой массив A.Найти длинну самой длинной последовательности подряд...

Найти длину самой длинной последовательности подряд идущих нулевых элементов массива
Задан числовой массив A(n). Найти длину самой длинной последовательности подряд...

Рекурсия: найти подпоследовательность подряд идущих элементов последовательности, сумма которых минимальна
В данной последовательности чисел найти подпоследовательность подряд идущих...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru