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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
SeryZone
 Аватар для SeryZone
56 / 28 / 5
Регистрация: 09.03.2012
Сообщений: 726
Записей в блоге: 1
#1

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

17.03.2012, 11:46. Просмотров 1414. Ответов 3
Метки нет (Все метки)

И опять: сколько можно?

Задано натуральное число N. От данного числа вычтем сумму цифр этого числа, от полученного числа опять вычтем сумму цифр и т.д. Данную операцию будем продолжать до тех пор, пока полученное число положительно. Сколько раз будем выполнять данную операцию?

Технические условия

Входные данные

Во входной строке находится число N, которое не превышает 2147483647.

Выходные данные

Количество выполненных операций.

Информация о задаче
Лимит времени: 1 секунда

Пример:
Ввод: 23
Вывод: 3

Ввод: 100
Вывод: 11

Вот решение, но выполняется медленно, как ускорить процесс?

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 <math.h>
using namespace std;
 
int main()
{
long n,t,c;
cin >> n;
c=0;
while (n>0)
{
    t=n;
    while (t>0)
    {
        n=n-(t%10);
        t=t/10;
    }
    c++;
    
}
cout << c;
}
Только если даёте подсказки, давайте их не на C#, а на C++.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.03.2012, 11:46     От данного числа N вычтем сумму цифр этого числа, от полученного числа опять вычтем сумму цифр и т.д. до тех пор, пока число положительно
Посмотрите здесь:

C++ Подпрограммы: Из заданного числа отняли сумму его цифр. Из результата опять отняли сумму его цифр и т.д. Через сколько таких действий получится ноль?
C++ Пользователь вводит с клавиатуры числа, до тех пор пока не введено число 6
C++ Рассчитать сумму цифр данного целого числа X.
Вводить отрицательные числа до тех пор пока не будет введено положительное число C++
Дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа C++
C++ составить программу, водящий трьозначне число и выводит сумму цифр этого числа
C++ Вместо чисел, имеющих в составе цифру P, вставить сумму цифр этого числа
Вывести на экран сумму цифр данного числа C++
Посчитать сумму цифр и сумму делителей данного целого числа C++
Найти сумму цифр данного целого числа C++
Находить сумму цифр числа пока она не будет равна 1 цифре C++
C++ Используя цикл while - do из натурального числа вычитать сумму его цифр пока не получится ноль

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
17.03.2012, 12:20     От данного числа N вычтем сумму цифр этого числа, от полученного числа опять вычтем сумму цифр и т.д. до тех пор, пока число положительно #2
мб рекурсивно?
M128K145
Эксперт C++
 Аватар для M128K145
8277 / 3496 / 143
Регистрация: 03.07.2009
Сообщений: 10,707
17.03.2012, 12:28     От данного числа N вычтем сумму цифр этого числа, от полученного числа опять вычтем сумму цифр и т.д. до тех пор, пока число положительно #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
int getSum(int number) {
    int sum = 0;
    while (number) {
        sum += number % 10;
        number /= 10;
    }
    return sum;
}
int main() {
    int number = 2147483640;
    int count = 1;
 
    while ((number -= getSum(number)) > 0)
        ++count;
    std::cout << count;
    return 0;
}
SeryZone
 Аватар для SeryZone
56 / 28 / 5
Регистрация: 09.03.2012
Сообщений: 726
Записей в блоге: 1
17.03.2012, 21:51  [ТС]     От данного числа N вычтем сумму цифр этого числа, от полученного числа опять вычтем сумму цифр и т.д. до тех пор, пока число положительно #4
Это еще хуже...
Yandex
Объявления
17.03.2012, 21:51     От данного числа N вычтем сумму цифр этого числа, от полученного числа опять вычтем сумму цифр и т.д. до тех пор, пока число положительно
Ответ Создать тему
Опции темы

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