![]() |
![]() |
Altair |
![]()
Сообщение
#1
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Возникла такая задача:
есть число (допустим 8 разрядное, т.е. byte), необходимо определить есть ли в его двоичном представлении разрывы и по возможности определить их длину. Под разрывом понимается последовательность нулей заключенная между единицами. Например: Числа не имеющие разрывов: 000001112 001110002 имеющие разрывы размера 1: 001011112 000001012 имеющие разрывы размера 2: 001001112 000010012 Я думаю суть задачи понятна. Меня интересует не итерационный (в т.ч. и не рекурсивный) алгоритм решения. Т.е. в цикле просмотреть все разряды, используя счетчик разрывов и длинны текущего разрыва это понятно, но мне кажется данная задача имеет еще какое-то неочевидное решение. Допустим задача минимум - вообще определить есть ли хотя бы 1 разрыв ненулевой длинны. Может быть это возможно сделать используя какие-то свойства чисел? -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
![]() ![]() |
![]() |
Текстовая версия | 20.06.2025 23:34 |