• Предмет: Информатика
  • Автор: Helpme3510
  • Вопрос задан 2 месяца назад

Задача 5: Долгое вычитание, Карл!

Карл Гаусс известен тем, что в юные годы сумел быстро решить задачку своего

учителя, которую тот предложил ученикам, чтобы занять их на продолжительное

время: найти сумму всех натуральных чисел от 1 до 100.

Говорят, что сразу после этого Карл решил и вторую хитрую задачу, так и не дав

своему преподавателю насладиться тишиной на уроке.

Дано натуральное число n. Из него вычитают число, равное длине числа n. Из

результата опять вычитают число, равное его длине и так далее. Сколько

потребуется операций, чтобы получилось число 0?

Попробуйте и вы справиться с этой задачей.

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

Программа получает на вход одно натуральное число n (1 ≤ n ≤ 1016).

Обратите внимание, что при заданных ограничениях для хранения ответа

необходимо использовать 64-битный тип данных, например long long в

C++, int64 в Pascal, long в Java.

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

Выведите одно натуральное число — ответ на вопрос задачи.

Система оценки

Решения, верно работающие при 1 ≤ n ≤ 99, получат не менее 20 баллов.

Решения, верно работающие при 1 ≤ n ≤ 105, получат не менее 60 баллов.

Пример

Ввод Вывод Пояснение

13 11

В примере дано n = 13. Это двузначное число, поэтому после

первой операции результат будет равен 13 − 2 = 11.

Число 11 тоже двузначное. После второй операции результат

будет равен 11 − 2 = 9.

Число 9 однозначное. Будем вычитать из чисел по 1, после ещё

девяти операций получим ноль.

Всего 11 операций.

Ответы

Ответ дал: p15
0

Ответ:

n=int(input())

s=0

while n>0:

   n-=len(str(n))

   s+=1

print(s)

Объяснение:

Решено в лоб. Гаусс на уроке наверно что-то выдумывал, как сделал это с суммой натуральных чисел.

Вас заинтересует