Автор | Сообщение |
|
Отправлено: 13.04.23 23:10. Заголовок: Задача 5_1777
Ответ на сайте: 95 Мой ответ: 92 for n in range(1, 1000): a = bin(n)[2:] if a[-1] == "1": a += "1" else: a += "0" if a.count("1") % 2 == 0: a += "0" else: a += "1" if a.count("1") % 2 == 0: a += "0" else: a += "1" if int(a, 2) > 80: print(int(a, 2)) break
|
|
|
Ответов - 3
[только новые]
|
|
|
Отправлено: 14.04.23 10:36. Заголовок: ответ Задача № 1777 ( 5)
обратите внимание 3) Затем справа дописывается 0, если в двоичном коде числа!!!!!!!!! N !!!!!!!!!!!!чётное число единиц, и 1, если нечётное. а Вы взяли новое a, а нужно n for n in range(1, 1000): a1 = bin(n)[2:] a = bin(n)[2:] if a[-1] == "1": a += "1" else: a += "0" print(a) if a1.count("1") % 2 == 0: a1=a+ "0" else: a1=a+"1" print(a1) if a1.count("1") % 2 == 0: a1 += "0" else: a1+= "1" print(a1) if int(a1, 2) > 80: print(int(a1, 2)) break
|
|
|
|
Отправлено: 14.04.23 13:21. Заголовок: Спасибо, не сталкива..
Спасибо, долго не мог понять, в чём же ошибка
|
|
|
|
Отправлено: 16.04.23 00:52. Заголовок: elpov06 пишет: for ..
Можно чуток код сократить, например так: for n in range(30): R = s = bin(n)[2:] R = R + R[-1] if s.count('1')%2 == 0: R = R + '0' else: R = R + '1' if R.count('1')%2 == 0: R = R + '0' else: R = R + '1' if int(R,2) > 80: print(int(R,2)) break
|
|
|
|