Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
6 / 5 / 4
Регистрация: 14.01.2017
Сообщений: 294
1

Дается целое число N: выведите только четные цифры этого числа

20.01.2017, 21:49. Показов 3704. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Программе дается целое число N. Выведите только четные цифры этого числа.

Формат входных данных

Дано целое неотрицательное число N (0 ≤ N ≤ 100 000 000).
Формат выходных данных

Выведите четные цифры числа N в том же порядке, что они идут в числе. В случае, если в числе не было ни одной четной цифры, выведите «NO» (без кавычек).
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.01.2017, 21:49
Ответы с готовыми решениями:

Дано трехзначное целое число N. Найти все цифры этого числа
Дано трехзначное целое число N. Найти все цифры этого числа. (Помогите)

Дано целое число. Вывести набор символов содержит цифры этого числа в обратном порядке
дано целое число. вывести набор символов содержит цифры этого числа в обратном порядке

Дано целое число. Вывести набор символов, содержащий цифры этого числа в обычном и обратном порядке
Дано целое число. Вывести набор символов , содержащий цифры этого числа в обычном и обратном...

Дано одно целое трехзначное число, вывести все цифры этого числа отсортированными по порядку. Например, 537 = 3 5 7
Дано одно целое трехзначное число, вывести все цифры этого числа отсортированными по порядку....

11
1642 / 1091 / 487
Регистрация: 17.07.2012
Сообщений: 5,345
20.01.2017, 23:08 2
Лучший ответ Сообщение было отмечено ildwine как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
int f(const int& n) {
    if (n <= 9) {
        if (n % 2 == 0) std::cout << n;
        return n % 2 == 0;
    }
    int r = f(n / 10);
    if (n % 2 == 0) {
        std::cout << n % 10;
        ++r;
    }
    return r;
}
 
int main() {
    int x;
    std::cin >> x;
    if (!f(x)) 
        std::cout << "NO";
}
3
Эксперт .NET
5871 / 4748 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
21.01.2017, 01:23 3
Мой вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <stack>
int main()
{
    int N, t;
    std::stack<int> tmp;
    std::cin >> N;
    while (N)
    {
        t=N%10;
        if (t%2==0) tmp.push(t);
        N/=10;
    }
    if (tmp.empty())
        std::cout << "NO";
    while (!tmp.empty())
    {
        std::cout << tmp.top() << " ";
        tmp.pop();
    }
    return 1;
}
1
1642 / 1091 / 487
Регистрация: 17.07.2012
Сообщений: 5,345
21.01.2017, 06:08 4
Цитата Сообщение от Даценд Посмотреть сообщение
std::stack<int> tmp;
Наши варианты в принципе одинаковы. Просто я использую стек рекурсии.
Цитата Сообщение от Даценд Посмотреть сообщение
<< " "
По заданию вроде как без пробелов. Хотя не плохо было бы чтоб ТС примеры тестов показал.
Цитата Сообщение от Даценд Посмотреть сообщение
return 1;
0 же.
1
515 / 407 / 188
Регистрация: 08.04.2013
Сообщений: 1,739
21.01.2017, 07:46 5
Удалил
0
Эксперт С++
1624 / 954 / 782
Регистрация: 06.02.2016
Сообщений: 2,452
Записей в блоге: 31
21.01.2017, 10:15 6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <string>
#include <algorithm>
#include <iterator>
using namespace std;
int main() {
    auto even=[](auto &x) { return x%2==0;  };
    int n;
    cin>>n;
    string s=to_string(n);
    if(any_of(s.cbegin(),s.cend(),even)) {
        copy_if(s.cbegin(),s.cend(),ostream_iterator<char>(cout," "),even);
    } else cout<<"No"<<endl;
    return 0;
}
0
Эксперт .NET
5871 / 4748 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
21.01.2017, 10:50 7
Цитата Сообщение от Новичок Посмотреть сообщение
0 же.
В 1:23 можно и 1
0
0 / 0 / 0
Регистрация: 25.11.2016
Сообщений: 5
21.01.2017, 16:53 8
а можете сделать это с помощью #include <iostream> и int main()
0
6 / 5 / 4
Регистрация: 14.01.2017
Сообщений: 294
21.01.2017, 20:22  [ТС] 9
Я как тот кто задал этот вопрос спрашиваю чем тебя не устроили представленные решения? Там и include<iostream> и int main()...
0
0 / 0 / 0
Регистрация: 25.11.2016
Сообщений: 5
21.01.2017, 23:15 10
я в смысле того, что только с <iostream> и с помощью while

Добавлено через 32 секунды
а то там написано то, что мы еще не проходили(
0
515 / 407 / 188
Регистрация: 08.04.2013
Сообщений: 1,739
22.01.2017, 08:07 11
Значит не так учат, Учат наверное программированию, а не читать в книге определенную страницу.

Добавлено через 37 минут
Без функции, вдруг не проходили
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
int main(){
    int d, i, rez;
    int k = 0;
    d = 1;
    int n;
       std::cin >> n;
    for(i = n / 10; i != 0; i /= 10)
        d *= 10;
 
    while(d != 0){
        rez= n / d % 10;
       if (rez % 2==0) {std::cout << rez <<" ";++k; }
        d /= 10;
    }
    if (!k) std::cout << "NO";
    return 0;
}
0
671 / 217 / 88
Регистрация: 21.07.2016
Сообщений: 1,036
Записей в блоге: 2
22.01.2017, 14:24 12
2468
Для продолжения нажмите любую клавишу . . .
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int main(int argc, char* argv[])
{
    int t, n;
    t = n = 12345678;
 
    std::stringstream ss;
 
    do
    {
        int c = t % 10;
        if(0 == c % 2) ss << c;
    } while ((t /= 10) > 0);
 
    std::string m = ss.str();
    std::reverse(m.begin(), m.end());
    std::cout << m << std::endl;
 
    return 0;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int main(int argc, char* argv[])
{
    int n = 12345678;
    std::string m(std::to_string(1ul*n));
 
    std::replace_if(
        m.begin(),
        m.end(),
        [](char c)
        {
            return c % 2;
        },
        0
    );
 
    std::cout << m << std::endl;
 
    return 0;
}
2 4 6 8
Для продолжения нажмите любую клавишу . . .
0
22.01.2017, 14:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.01.2017, 14:24
Помогаю со студенческими работами здесь

Дано целое положительное число. Вывести символы, изображающие цифры этого числа (в порядке справа налево). Заранее всем
Дано целое положительное число. Вывести символы, изображающие цифры этого числа (в порядке справа...

Сформировать из данного числа другое число, которое содержит только четные цифры (рекурсия)
Помогите описать рекурсивную подпрограмму, формирующую из данного натурального числа другое число,...

Введите целое число с клавы выведите его цифры начиная с последней
введите целое число с клавы выведите его цифры начиная с последней

Дано целое число поменять в нем местами четные и нечетные цифры
К примеру число 10110101 должно выглядеть так 01111010 не могу сообразить как замену сделать ...


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

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