Информатика, вопрос задал donche08 , 2 года назад

Автомат обрабатывает натуральное число N (0 ≤ N ≤ 255) по следующему
алгоритму:
1. Строится восьмибитная двоичная запись числа N.
2. Все цифры двоичной записи заменяются на противоположные (0 на 1,
1 на 0).
3. Полученное число переводится в десятичную систему счисления.
4. Из нового числа вычитается исходное, полученная разность выводится
на экран.

Какое число нужно ввести в автомат, чтобы в результате получилось 97?

Ответы на вопрос

Ответил vanisherxxx
11

for n in range(255):

   n_old = n

   

   n = bin(n)[2:]      # 1. Перевод в 2 сс + отделение лишних знаков

   

   while len(n) != 8:  # Добиваем до восьмибитной

       n = '0' + n

   x = ''                            #

   for i in range(len(n)):  #  

       if n[i] == '1':              #

           x += '0'                # 2. Замена цифр на противоположные

       else:                       #

           x += '1'                #

   n = x                           #

   n = int(n, 2)  # 3. Перевод в 10 сс

   n -= n_old  # 4. Вычитается исходное

   if n == 97:

       print(n_old)  # Ответ: 79


vanisherxxx: Какой же ты неблагодарный, я потратил на твой вопрос время, написал рабочую, стабильную, ПРАВИЛЬНУЮ, программу, а ты берёшь и кидаешь её в нарушения.
donche08: я кидаю в нарушения комментарий, а не задачу.
vanisherxxx: "donche08 отметила нарушение в решении Пользователя vanisherxxx"
Новые вопросы