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

Деление числа на разряды - C++

Восстановить пароль Регистрация
 
Anton240971
0 / 0 / 0
Регистрация: 21.01.2014
Сообщений: 8
21.01.2014, 22:04     Деление числа на разряды #1
Написать программу, выводящую на экран разряды введенного числа и их сумму.
То есть, если пользователь ввел число 3746, программа выдаст следующее:
6
4
7
3
Сумма чисел : 20;
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,058
21.01.2014, 22:05     Деление числа на разряды #2
используй деление на 10 и остаток от деления на 10
Anton240971
0 / 0 / 0
Регистрация: 21.01.2014
Сообщений: 8
21.01.2014, 22:16  [ТС]     Деление числа на разряды #3
Можно мне как чайнику скрин программы?)
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
21.01.2014, 22:26     Деление числа на разряды #4
Цитата Сообщение от Anton240971 Посмотреть сообщение
Можно мне как чайнику скрин программы?)
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 x,k,s=0;
std::cin>>x; 
    do
    {
        k=x%10;
        x/=10;
        s+=k;
        std::cout<<k<<"\n";
    }
    while (x>10);
    std::cout<<x<<"\n";
    s+=x;
    std::cout<<"Summa:"<<s<<"\n";
    std::system("Pause");
}
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,058
21.01.2014, 22:31     Деление числа на разряды #5
Цитата Сообщение от mustimur Посмотреть сообщение
do
{
k=x%10;
x/=10;
s+=k;
std::cout<<k<<"\n";
}
while (x>10);
то же самое с циклом while
C++
1
2
3
4
5
6
7
while(x)
{
k=x%10;
x/=10;
s+=k;
std::cout<<k<<"\n";
}
с циклом for
C++
1
2
3
4
5
6
for(;x;x/=10)
{
k=x%10;
s+=k;
std::cout<<k<<"\n";
}
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
21.01.2014, 22:50     Деление числа на разряды #6
Цитата Сообщение от ValeryS Посмотреть сообщение
то же самое с циклом while
А я и не претендую на единственность решения))), можно вообще без цикла если мы упражняемся в кодопесании:
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 x,k,s=0;
std::cin>>x; 
   
 ps10: 
      k=x%10;
        x/=10;
        s+=k;
        std::cout<<k<<"\n";
    
    if (x>10) goto ps10;
    std::cout<<x<<"\n";
    s+=x;
    std::cout<<"Summa:"<<s<<"\n";
    std::system("Pause");
}
Добавлено через 1 минуту
в смысле явно объявленного цикла
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,058
21.01.2014, 22:53     Деление числа на разряды #7
Цитата Сообщение от mustimur Посмотреть сообщение
А я и не претендую на единственность решения)))
а я тебе ничего и не говорю
это для ТС
Цитата Сообщение от mustimur Посмотреть сообщение
goto ps10;
моветон
а еще можно рекурсией
перевод числа в строку
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
21.01.2014, 22:59     Деление числа на разряды #8
Цитата Сообщение от ValeryS Посмотреть сообщение
перевод числа в строку
мне нравится, но сумму находить экзотично придется
Цитата Сообщение от ValeryS Посмотреть сообщение
а еще можно рекурсией
Сильная штука, я ее на определители первый раз опробовал, но ей только новичкам показывать и пугать объяснением)))
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,058
21.01.2014, 23:03     Деление числа на разряды #9
Цитата Сообщение от mustimur Посмотреть сообщение
мне нравится, но сумму находить экзотично придется
Да че там экзотичного
C++
1
2
for(int i=0,str[i],i++)
  sum+=str[i]-'0';
непривычно, да
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
21.01.2014, 23:15     Деление числа на разряды #10
Цитата Сообщение от ValeryS Посмотреть сообщение
Да че там экзотичного
Вычитать символ это не экзатично ли?)) Я такое ни очень люблю: понятно что кодировка цифр подряд идет, но все равно взгляд режет)
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,058
21.01.2014, 23:23     Деление числа на разряды #11
Цитата Сообщение от mustimur Посмотреть сообщение
Вычитать символ это не экзатично ли?))
неа
вот так более экзотично
C++
1
2
for(int i=0,str[i],i++)
   sum+=str[i]&0x0F;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.01.2014, 23:29     Деление числа на разряды
Еще ссылки по теме:

Дано натуральное число N(N > 9). Определить сумму цифр в первой половине числа (старшие разряды). Пример. N=12 C++
C++ Определить сумму цифр во второй половине натурального числа (младшие разряды)

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

Или воспользуйтесь поиском по форуму:
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
21.01.2014, 23:29     Деление числа на разряды #12
это уже по-китайски или японски иероглифы пошли. Только клинопись на ассемблере не показывай)))
Yandex
Объявления
21.01.2014, 23:29     Деление числа на разряды
Ответ Создать тему
Опции темы

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