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

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

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

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

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

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

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

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

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

14
MrGluck
Модератор
Эксперт CЭксперт С++
8078 / 4931 / 1431
Регистрация: 29.11.2010
Сообщений: 13,358
16.02.2017, 15:26 #2
Что за бред? Понятие чётности относится к целым числам.
0
Pipo
0 / 0 / 0
Регистрация: 16.02.2017
Сообщений: 16
16.02.2017, 15:28  [ТС] #3
Согласен, пусть будут целые числа.
0
MrGluck
Модератор
Эксперт CЭксперт С++
8078 / 4931 / 1431
Регистрация: 29.11.2010
Сообщений: 13,358
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 / 0
Регистрация: 16.02.2017
Сообщений: 16
16.02.2017, 15:33  [ТС] #5
MrGluck, а возможно решить без массивов?
0
MrGluck
Модератор
Эксперт CЭксперт С++
8078 / 4931 / 1431
Регистрация: 29.11.2010
Сообщений: 13,358
16.02.2017, 15:35 #6
Pipo, там по условию уже дана последовательность. Вы предлагаете считывать с клавиатуры пока не будет введено чётное число?
0
Pipo
0 / 0 / 0
Регистрация: 16.02.2017
Сообщений: 16
16.02.2017, 15:38  [ТС] #7
MrGluck, вроде бы, нужно ввести с клавиатуры n целых чисел и затем вывести сумму идущих подряд нечётных. Причем ввести первое нечетное.
0
MrGluck
Модератор
Эксперт CЭксперт С++
8078 / 4931 / 1431
Регистрация: 29.11.2010
Сообщений: 13,358
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 / 0
Регистрация: 16.02.2017
Сообщений: 16
16.02.2017, 15:45  [ТС] #9
MrGluck, Но нужно же ввести эти n чисел. А затем посчитать сумму идущих в начале подряд нечётных.
0
MrGluck
Модератор
Эксперт CЭксперт С++
8078 / 4931 / 1431
Регистрация: 29.11.2010
Сообщений: 13,358
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
sourcerer
Модератор
Эксперт CЭксперт С++
4832 / 2024 / 315
Регистрация: 20.02.2013
Сообщений: 5,448
Записей в блоге: 24
Завершенные тесты: 1
16.02.2017, 15:55 #11
 Комментарий модератора 
Pipo,пожалуйста, прочитайте правила форума.
Особое внимание обратите на следующие пункты:Условие задачи перепечатайте непосредственно в тело сообщения.

.
0
Pipo
0 / 0 / 0
Регистрация: 16.02.2017
Сообщений: 16
16.02.2017, 15:56  [ТС] #12
MrGluck, Нужно бы без операторов условных. Но спасибо за помощь!)
0
MrGluck
Модератор
Эксперт CЭксперт С++
8078 / 4931 / 1431
Регистрация: 29.11.2010
Сообщений: 13,358
16.02.2017, 16:41 #13
Pipo, так тут в любом случае нужна проверка т.к. числа могут быть и чётными.
0
Pipo
0 / 0 / 0
Регистрация: 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Эксперт С++
8078 / 4931 / 1431
Регистрация: 29.11.2010
Сообщений: 13,358
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.Найти длинну самой длинной последовательности подряд...


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

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

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