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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.62
im_Kudrik
0 / 0 / 0
Регистрация: 17.11.2011
Сообщений: 20
#1

Вывести сумму цифр числа - C++

17.11.2011, 16:41. Просмотров 1892. Ответов 20
Метки нет (Все метки)

смысл задачи такой : мы вводим двузначное число ,нужно вывести сумму его цифр ,если сумма цифр снова двузначное число ,то снова складываем эти цифры ,и так до тех пор ,пока не получится однозначное цисло .И еще ,нужно вывести количество операций которые мы выполняем при этом вот пример : вводим 10 выводится 1 0
вводим 88 выводится 7 2

большая просьба решить через string ,
 Комментарий модератора 
Запрещено создавать темы с бессмысленными названиями вроде "Помогите!", "Вопрос" и т.п.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2011, 16:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывести сумму цифр числа (C++):

От данного числа N вычтем сумму цифр этого числа, от полученного числа опять вычтем сумму цифр и т.д. до тех пор, пока число положительно - C++
И опять: сколько можно? Задано натуральное число N. От данного числа вычтем сумму цифр этого числа, от полученного числа опять...

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

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

Вывести на экран сумму цифр данного числа - C++
1.Вводятся двузначное чиcло. Вывести на экран сумму цифр данного числа.

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
neske
1482 / 849 / 76
Регистрация: 26.03.2010
Сообщений: 2,917
17.11.2011, 19:38 #16
im_Kudrik, ну просто в условии была сказано про двузначное, я так и сделал. если любое, то так -
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
28
#include <iostream>
#include <string>
#include <sstream>
 
int main() {
    std::string str;
    std::cin >> str;
    std::stringstream ss;
    int cnt = 0;
    int temp;
 
    while (++cnt) {
        temp = 0;
        for (int i = 0; i < (int) str.size(); ++i)
            temp += (str[i] - '0');
        if (temp > 9) {
            ss << temp;
            ss >> str;
            ss.clear();
        }
        else
            break;
    }
 
    std::cout << temp << " " << cnt;
    std::cout << std::endl;
    return 0;
}
ss в данном случае это универсальный поток ввода - вывода, мы сначала загружаем в него число temp, а выгружаем уже в строку, тем самым мы конвертировали int в string. А далее, мы его отчищаем, ибо вышеописанная операция может происходить не раз. Ну и собственно пока мы не добрались до брейка, то есть temp > 9, счетчик будет инкрементироваться.
im_Kudrik
0 / 0 / 0
Регистрация: 17.11.2011
Сообщений: 20
17.11.2011, 19:48  [ТС] #17
можно еще попросить помочь?просто мы тока начали изучать язык с++ ,можно использовать тока #include <string> без #include <sstream> ?
neske
1482 / 849 / 76
Регистрация: 26.03.2010
Сообщений: 2,917
17.11.2011, 21:03 #18
ну такой велосипед получился

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
28
#include <iostream>
#include <string>
 
int main() {
    std::string str;
    std::cin >> str;
    int cnt = 0;
    int temp = 0;
 
    while (++cnt) {
        for (int i = 0; i < (int) str.size(); ++i)
            temp += (str[i] - '0');
        if (temp > 9) {
            str.clear();
            while (temp) {
                char ch = (temp % 10) + '0';
                str = ch + str;
                temp /= 10;
            }
        }
        else
            break;
    }
 
    std::cout << temp << " " << cnt;
    std::cout << std::endl;
    return 0;
}
im_Kudrik
0 / 0 / 0
Регистрация: 17.11.2011
Сообщений: 20
17.11.2011, 21:11  [ТС] #19
а что значит temp > 9 ?
neske
1482 / 849 / 76
Регистрация: 26.03.2010
Сообщений: 2,917
17.11.2011, 21:15 #20
ну, ээ, если temp больше девяти, то продолжаем, а иначе выходим из цикла.
im_Kudrik
0 / 0 / 0
Регистрация: 17.11.2011
Сообщений: 20
17.11.2011, 21:26  [ТС] #21
огромное спасибо ,очень выручили...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.11.2011, 21:26
Привет! Вот еще темы с ответами:

Вывести все 6-ти значные числа, которые делятся без остатка на сумму своих цифр - C++
Вывести все 6-ти значные числа, которые делятся без остатка на сумму своих цифр. подсчитать кол-во Решаю ее в таком ключе, подскажите,...

Найти сумму делитей. Подсчитать сумму цифр числа. Количество цифр - C++
Друзья,подскажите пожалуйста где ошибка?Цикл не считает сумму делителей числа. #include &lt;iostream&gt; using namespace std; void...

Используя арифметические операции, определить и вывести сумму цифр трехзначного целого числа k (100<=k<=255) - C++
1)осуществить: - проверку корректности по типу вводимых значений; - проверку диапазонов вводимых значений. -Используя...

Дано натуральное число N. Найти и вывести все числа в интервале от 1 до N-1, у которых произведение цифр совпадает с произведением цифр данного числа - C++
Помогите, пожалуйста!!! А то у меня не получается( Написал программу, когда ввожу число 32 как в примере выводит только 16, а 6 и 23 не...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
17.11.2011, 21:26
Ответ Создать тему
Опции темы

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