Форум » Выполнение и анализ алгоритмов для исполнителей » Задача 5_1777 » Ответить

Задача 5_1777

AlexsandrPrytkov: Ответ на сайте: 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

elpov06: обратите внимание 3) Затем справа дописывается 0, если в двоичном коде числа!!!!!!!!! N !!!!!!!!!!!!чётное число единиц, и 1, если нечётное. а Вы взяли новое a, а нужно n [pre2]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[/pre2]

AlexsandrPrytkov: Спасибо, долго не мог понять, в чём же ошибка

s11kai: Можно чуток код сократить, например так: [pre2]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 [/pre2]




полная версия страницы