Карл Гаусс известен тем, что в юные годы сумел быстро решить задачку своего учителя, которую тот предложил ученикам, чтобы занять их на продолжительное время: найти сумму всех натуральных чисел от 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 операций.
Сдать решение
Ответы на вопрос
Ответил ssatonin92
0
Ответ:
using System;
public class HelloWrold
{
static void Main()
{
string input = Console.ReadLine();
long number =
Convert.ToInt64(input);
long length;
long answer = 0;
while (number > 0)
{
length =number.ToString().Length;
answer++;
number -= length;
}
Console.Write(answer);
}
}
Объяснение:
Ответил Fedy16
0
Python:
n = int(input())
count = 0
while n > 0:
n -= len(str(n))
count += 1
print(count)
Новые вопросы