Задача 208. Забавная игра. acmp.ru C++

preview_player
Показать описание
Задача:
VK:
Telegram:
Поддержка:
Мои стримы:
Рекомендации по теме
Комментарии
Автор

С тем ограничением на число, которое есть (0 ≤ N ≤ 32767) можно без перевода в строки обойтись. При циклическом сдвиге каждое следующее число можно получить как n = (n / 2) + (n % 2) * d, где d - максимальная степень 2 в начальном числе. Если бы это было на пределе производительности и числа были большими, то lzcnt или аналоги (std::countl_zero из С++ 20) позволяют быстро (без циклов) вычислить d.

alexanderspeshilov
Автор

да, пайтон больше подходит для подобных задач

countrysideshowyaigrock