Сколько мальчиков нужно вызвать, чтобы на доске получился ноль? — ЛисОтвет

Сколько мальчиков нужно вызвать, чтобы на доске получился ноль?

1.20K просмотровОбразование
0
0 комментариев

На доске написано число n, с которым несколько раз производят следующую операцию: если в записи числа на доске есть хотя бы одна нечётная цифра, то очередной мальчик вычитает из него 1, в противном случае — делит на 2. Сколько мальчиков нужно вызвать, чтобы на доске получился ноль?

Формат входных данных: единственная строка входного файла содержит натуральное число n (1≤n≤1018).

Обратите внимание, что входные данные в этой задаче могут превышать возможное значение 32‑битной целочисленной переменной, поэтому необходимо использовать 64‑битные целочисленные типы данных (тип int64 в языке Pascal, тип long long в C и C++, тип long в Java и C#).

Аноним
0
Аноним 0 Коментарии

Любое число меньшее либо равное 105.
Например, 89 — рассчитав по алгоритму, получим 11.
Сам алгоритм может быть такой:
n, c = int(input()), 0
while n: n, c = n — 1 if { ‘1’, ‘3’, ‘5’, ‘7’, ‘9’ } & set(str(n)) else n // 2, c + 1
print(c)

Аноним
Вы просматриваете 1 из1 ответов, нажмите здесь, чтобы просмотреть все ответы.