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

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

Показать ответ
Ответ:
musinalarisa
musinalarisa
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-бота