Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача за 1 wmz
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи > Задачи на заказ
FIREMAX
Последовательность 011212201220200112… строится так: сначала 0, затем повторяется следующее действие: уже написанную часть приписывают справа с заменой 0 на 1, 1 на 2, 2 на 0, т.е.
0->01->0112->01121220->…
Составить алгоритм, который по введённому N, (0<=N<=3 000 000 000) определяет, какое число стоит на N-ом месте в последовательности нулей ( за исключением представления числа 0).Используя эту функцию, получить двоичное 1|16-ричное 2 представления данных пяти чисел.
мисс_граффити
думаю, так: длина последовательности - это всегда степень двойки.
берем N. находим минимальную длину последовательности, т.е. такое m, что 2^m>=N.
на месте N будет увеличенная на 1 цифра с места (N-2^(m-1)).
Так рекурсивно добираемся до первого нуля, считая кол-во шагов.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.