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

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

Восстановить пароль Регистрация
 
LittleLi
 Аватар для LittleLi
4 / 4 / 0
Регистрация: 03.10.2010
Сообщений: 14
13.10.2010, 19:49     Сумма цифер натурального числа #1
Дано натуральное число. Нужно проверить парна ли сумма его цифер.
заранее спасибки)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
13.10.2010, 19:51     Сумма цифер натурального числа #2
"Парна ли" в смысле "чётна ли"?
LittleLi
 Аватар для LittleLi
4 / 4 / 0
Регистрация: 03.10.2010
Сообщений: 14
13.10.2010, 19:54  [ТС]     Сумма цифер натурального числа #3
да да. извини(
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 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;
}
LittleLi
 Аватар для LittleLi
4 / 4 / 0
Регистрация: 03.10.2010
Сообщений: 14
13.10.2010, 19:57  [ТС]     Сумма цифер натурального числа #5
спасибо! а можете немножко прокомментировать? я с++ только начинаю учить и не очень поняла...
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 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;
}
LittleLi
 Аватар для LittleLi
4 / 4 / 0
Регистрация: 03.10.2010
Сообщений: 14
13.10.2010, 20:07  [ТС]     Сумма цифер натурального числа #7
спасибо!!!
Edvard*
Сообщений: n/a
14.10.2010, 13:41     Сумма цифер натурального числа #8
Цитата Сообщение от LittleLi Посмотреть сообщение
спасибо! а можете немножко прокомментировать? я с++ только начинаю учить и не очень поняла...
по моему ето С , а не С++
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
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");
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
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;
}
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
14.10.2010, 16:28     Сумма цифер натурального числа #11
easybudda, рекурсия не есть хорошо, но как вариант, можно
LittleLi
 Аватар для LittleLi
4 / 4 / 0
Регистрация: 03.10.2010
Сообщений: 14
14.10.2010, 16:48  [ТС]     Сумма цифер натурального числа #12
спасибо! ведь с++ похожий на с... я немного переделала и все получилось!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.10.2010, 17:34     Сумма цифер натурального числа
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
14.10.2010, 17:34     Сумма цифер натурального числа #13
Цитата Сообщение от M128K145 Посмотреть сообщение
рекурсия не есть хорошо
учитывая максимально возможное количество десятичных разрядов в числе, представленном типом int, никаких пакостей вроде переполнения стека можно не ждать, за то так в одну строку поместилось да и нравится мне такие простенькие функции рекурсивными делать - интереснее получается. А в целом - да, в разных книжках читал, что рекурсивный метод - не лучшее решение, правда, иногда действительно нагляднее...


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

Не по теме:

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

Yandex
Объявления
14.10.2010, 17:34     Сумма цифер натурального числа
Ответ Создать тему
Опции темы

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