1) 5
2) 9
3) 9
4) 10
алгоритм простой, представим число n-1 (т.к. ноль не учитывается) в качестве двойчной последовательности, для числа n=32 это будет 11111 дальнейший алгоритм прост, рассмотрим его на примере, задумано число 26:
1) проверяем правый регист (*0000 = 16), задаем вопрос "задуманое число больше 16?", ответ "да", значит первы регистр 1
2) проверяем следующий (1*000=24), задаем вопрос "задуманое число больше 24?", ответ "да", значит регистр 1
3) проверяем следующий (11*00=28), задаем вопрос "задуманое число больше 28?", ответ "нет", значит регистр 0
4)проверяем следующий (110*0=26), задаем вопрос "задуманое число больше 26?", ответ "нет", значит регистр 0
5) проверяем следующий (1100*=25), задаем вопрос "задуманое число больше 25?", ответ "да", значит регистр 1
итого получаем задуманное число в двоичной форме 11001 = 25, но т.к. мы не учитываем 0, то к этому числу надо прибавить 1, итого задусманное число 26
Предлагаемое в условии число представляет собой десятичную дробь, т.е. имеет целую и дробную части. Для целой части незначащими будут левые нули и мы будем искать их в первой тетраде. Для дробной части незначащие нули - последние и мы будем их искать в последней тетраде.
Первая тетрада - представление 1(16)=0001(2). Левые три нуля незначащие и их удаляем, остается 1. Последняя тетрада - представление Е(16)=1110(2). Тут один незначащий ноль - правый, остается 111.. Остальные тетрады переписываем без изменения.
12АС,6Е(16)=1 0010 1010 1100 , 0110 111 (2)
Считаем количество нулей в записи: 9. Это и есть ответ.
Комментарии Отметить нарушение