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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
LittleLi
4 / 4 / 0
Регистрация: 03.10.2010
Сообщений: 14
#1

Сумма цифер натурального числа - C++

13.10.2010, 19:49. Просмотров 858. Ответов 12
Метки нет (Все метки)

Дано натуральное число. Нужно проверить парна ли сумма его цифер.
заранее спасибки)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.10.2010, 19:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сумма цифер натурального числа (C++):

Сумма цифр натурального числа - C++
люди, обясните мне пожалуста как работает ета функция { return n ? n % 10 + suma(n / 10) : 0; } , полностью опишите как ето работает,...

Сумма цифр натурального числа - C++
Рассмотрим произвольное натуральное число и найдём сумму его цифр,затем сумму цифр полученного числа и так далее, пока не получиться...

Сумма цифр натурального числа - C++
Нужна помощь по следующей задаче: {Дано натуральное число. Найдите сумму цифр данного числа. Написать рекурсивную функцию} Смотрел в...

сумма цыфр натурального числа - C++
Для заданого натурального числа найти сумму цифр числа и найти число, в котором цифры расположены в обратном порядке

Сумма цифп произвольного натурального числа - C++
Рассмотрим произвольное натуральное число и найдем сумму его цифр, затем сумму цифр полученного числа и так далее, пока не получим...

Сумма делителей данного натурального числа - C++
Задание: Написать подпрограмму, которая вычисляет сумму делителей данного натурального числа Добавлено через 1 час 26 минут 24...

12
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
13.10.2010, 19:51 #2
"Парна ли" в смысле "чётна ли"?
0
LittleLi
4 / 4 / 0
Регистрация: 03.10.2010
Сообщений: 14
13.10.2010, 19:54  [ТС] #3
да да. извини(
0
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
13.10.2010, 19:55 #4
Значит так:

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
#include <stdio.h>
#include <conio.h>
 
int main()
{
    int n;
    int s = 0;
 
    printf("Enter n: ");
    scanf("%d", &n);
 
    do
    {
        s += n % 10;
        n /= 10;
    }
    while (n != 0);
 
    if (s % 2 == 0)
        printf("Yes");
    else
        printf("No");
 
    getch();
    return 0;
}
1
LittleLi
4 / 4 / 0
Регистрация: 03.10.2010
Сообщений: 14
13.10.2010, 19:57  [ТС] #5
спасибо! а можете немножко прокомментировать? я с++ только начинаю учить и не очень поняла...
0
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
13.10.2010, 20:03 #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
#include <stdio.h>
#include <conio.h>
 
int main()
{
    int n;     // Само натуральное число
    int s = 0; // Будущая сумма
 
    printf("Enter n: "); // Приглашение ввести число
    scanf("%d", &n);     // Считывание числа с клавиатуры
 
    // В цикле
    do
    {
        s += n % 10; // К сумме прибавляем остаток от деления числа на 10 (т.е. последнюю цифру этого числа)
        n /= 10;     // Само число деилим на 10 (когда производим операцию деления числа типа int на 10 - по сути отсекаем от числа последнюю цифру)
    }
    while (n != 0); // Пока n не равно 0 (т.е. пока в числе не останется цифр)
 
    if (s % 2 == 0) // Если остаток от деления найденной суммы на 2 равен нулю (т.е. число чётное)
        printf("Yes"); // Выводим "Yes"
    else            // Иначе (число не чётное)
        printf("No");  // Выводим "No"
 
    getch(); // Задержка (чтобы консоль не закрывалась сразу после вывода результата - закомментируйте эту строку и посмотрите, что будет)
    return 0;
}
1
LittleLi
4 / 4 / 0
Регистрация: 03.10.2010
Сообщений: 14
13.10.2010, 20:07  [ТС] #7
спасибо!!!
0
Edvard*
0 / 0 / 0
Регистрация: 11.10.2010
Сообщений: 2
14.10.2010, 13:41 #8
Цитата Сообщение от LittleLi Посмотреть сообщение
спасибо! а можете немножко прокомментировать? я с++ только начинаю учить и не очень поняла...
по моему ето С , а не С++
0
M128K145
Эксперт С++
8300 / 3520 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
14.10.2010, 13:47 #9
C
1
2
3
4
5
6
do
{
    s += n % 10;
    n /= 10;
} while (n);
printf(s & 1 ? "No" : "Yes");
0
easybudda
Модератор
Эксперт CЭксперт С++
9698 / 5648 / 964
Регистрация: 25.07.2009
Сообщений: 10,863
14.10.2010, 13:53 #10
Цитата Сообщение от Edvard* Посмотреть сообщение
по моему ето С , а не С++
Ну да, но как С++ программа скомпилируется. Вот наоборот как правило не получается...
Ещё вариант (на С++)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
int dsum(int val){
    return ( ! val ) ? 0 : val % 10 + dsum(val / 10);
}
 
int main(){
    int n, s;
 
    std::cout << "Number: ";
    std::cin >> n;
    std::cout << "Sum of digits: " << ( s = dsum(n) ) << ", it's " << ( s & 1 ? "odd" : "even" ) << std::endl;
 
    return 0;
}
0
M128K145
Эксперт С++
8300 / 3520 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
14.10.2010, 16:28 #11
easybudda, рекурсия не есть хорошо, но как вариант, можно
0
LittleLi
4 / 4 / 0
Регистрация: 03.10.2010
Сообщений: 14
14.10.2010, 16:48  [ТС] #12
спасибо! ведь с++ похожий на с... я немного переделала и все получилось!
0
easybudda
Модератор
Эксперт CЭксперт С++
9698 / 5648 / 964
Регистрация: 25.07.2009
Сообщений: 10,863
14.10.2010, 17:34 #13
Цитата Сообщение от M128K145 Посмотреть сообщение
рекурсия не есть хорошо
учитывая максимально возможное количество десятичных разрядов в числе, представленном типом int, никаких пакостей вроде переполнения стека можно не ждать, за то так в одну строку поместилось да и нравится мне такие простенькие функции рекурсивными делать - интереснее получается. А в целом - да, в разных книжках читал, что рекурсивный метод - не лучшее решение, правда, иногда действительно нагляднее...


Цитата Сообщение от LittleLi Посмотреть сообщение
ведь с++ похожий на с...
На самом деле это разные языки программирования, но в общем случае язык С можно считать подмножеством языка С++

Не по теме:

Барышня одна по поводу "похожи" хорошо говорила - "Як свиня на коня, тильки шерсть ни та..."

0
14.10.2010, 17:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.10.2010, 17:34
Привет! Вот еще темы с ответами:

Сумма цифр натурального числа посредством рекурсии - C++
Необходимо найти сумму цифр натурального числа используя отдельную функцию с рекурсией. Пару программ писал на простое нахождение суммы...

Вывести на экран только те, у которых сумма первых двух цифер равна сумме двух последних. - C++
Дан массив из n четырёхзначных натуральных чисел. Вывести на экран только те, у которых сумма первых двух цифер равна сумме двух последних.

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

Сумма каких-либо двух цифр заданного трехзначного натурального числа N равна третьей цифре. - C++
Помогите решить задачу. Сумма каких-либо двух цифр заданного трехзначного натурального числа N равна третьей цифре. Заранее спасибо.


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

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

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