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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
SeryZone
 Аватар для SeryZone
56 / 28 / 5
Регистрация: 09.03.2012
Сообщений: 726
Записей в блоге: 1
17.03.2012, 11:46     От данного числа N вычтем сумму цифр этого числа, от полученного числа опять вычтем сумму цифр и т.д. до тех пор, пока число положительно #1
И опять: сколько можно?

Задано натуральное число 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.
Дано натуральное число N. Найти и вывести все числа в интервале от 1 до N-1, у которых произведение цифр совпадает с произведением цифр данного числа C++
Дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
panicwassano
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
17.03.2012, 12:20     От данного числа N вычтем сумму цифр этого числа, от полученного числа опять вычтем сумму цифр и т.д. до тех пор, пока число положительно #2
мб рекурсивно?
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 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 вычтем сумму цифр этого числа, от полученного числа опять вычтем сумму цифр и т.д. до тех пор, пока число положительно
Ответ Создать тему
Опции темы

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