В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
hazret
hazret
10.10.2020 09:06 •  Информатика

На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом. 1) Строится двоичная запись числа N.
2) Складываются все цифры двоичной записи числа. Если сумма четная, то в конец числа (справа) дописывается 1, а если нечетная, то дописывается 0. Например, запись числа 10 преобразуется в запись 100;
3) К полученному результату применяется еще раз пункт 2 этого алгоритма.
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N) является двоичной записью искомого числа R. Укажите количество чисел R, которые могут быть получены в результате работы этого алгоритма, и лежат в диапазоне 16 ≤ R ≤ 32.

Показать ответ
Ответ:
ого23
ого23
09.03.2021 18:41

Для ручного ввода числа:

a = int(input('Введите число: '))

b = bin(a)[2:]

print(b)

if b.count('1')%2 == 0:

 b+='10'

else:

 b+='00'

print(b)

print(int(b, base=2))

Числа, получившиеся в интервале от 16 до 32:

def getNumber(x):

 b = bin(x)[2:]

 print(b)

 if b.count('1')%2 == 0:

   b+='10'

 else:

   b+='00'

 print(b)

 return int(b, base=2)

i=1

k=0

count=0

while k<=32:

 print(i)

 k=getNumber(i)

 print(k)

 print()

 i+=1

 if 16 <= k <= 32: count+=1

print(f'Количество выходных чисел в промежутке от 16 до 32 равно {count}')

ответ: Количество выходных чисел в промежутке от 16 до 32 равно 5

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота