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

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

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

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

17.03.2012, 11:46. Просмотров 1491. Ответов 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++
составить программу, водящий трьозначне число и выводит сумму цифр этого числа

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

Найти сумму цифр данного целого числа - C++
Дано целое число. Составить программу которая находит сумму цифр

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

Рассчитать сумму цифр данного целого числа X. - C++
Я знаю что это очень легкая задача, но тем не менее я никак не могу решить. Помогите мне пожалуйста! Рассчитать сумму цифр данного целого...

Пользователь вводит с клавиатуры числа, до тех пор пока не введено число 6 - C++
Пользователь вводит с клавиатуры числа, до тех пор пока не введено число 6. Найти сумму чисел до6. ЗЫ - не набросков не чего...

Находить сумму цифр числа пока она не будет равна 1 цифре - C++
Нужно находить сумму до тех пор,пока она не будет равна 1 числу,например 9876=9+8+7+6=30=3+0=3. С использованием циклов. Добавлено...

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

Используя цикл while - do из натурального числа вычитать сумму его цифр пока не получится ноль - C++
Из заданного натурального числа вычли сумму его цифр. Из результатов вновь вычли сумму его цифр и д.т. Сколько таких действий необходимо...

Вместо чисел, имеющих в составе цифру P, вставить сумму цифр этого числа - C++
Не понимаю как ее сделать помогите. Разработать программу на языке программирования С++. Дан массив из N целых чисел, где N&lt;=16,...

Вычислить и выдать на экран сумму K старших (находящихся слева) цифр этого числа. - C++
Ввести с клавиатуры натуральное число A. Вычислить и выдать на экран сумму K старших (находящихся слева) цифр этого числа. Значение K ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
17.03.2012, 12:20     От данного числа N вычтем сумму цифр этого числа, от полученного числа опять вычтем сумму цифр и т.д. до тех пор, пока число положительно #2
мб рекурсивно?
M128K145
Эксперт С++
8283 / 3502 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
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
56 / 28 / 5
Регистрация: 09.03.2012
Сообщений: 726
Записей в блоге: 1
17.03.2012, 21:51  [ТС]     От данного числа N вычтем сумму цифр этого числа, от полученного числа опять вычтем сумму цифр и т.д. до тех пор, пока число положительно #4
Это еще хуже...
Yandex
Объявления
17.03.2012, 21:51     От данного числа N вычтем сумму цифр этого числа, от полученного числа опять вычтем сумму цифр и т.д. до тех пор, пока число положительно
Ответ Создать тему
Опции темы

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