Автор | Сообщение |
|
Отправлено: 16.04.22 10:55. Заголовок: Задача 3521
Добрый день. Не сходится ответ в задаче. У меня получается 41, в ответе указано 42.\ Вот мое решение: for n in range(1000,1,-1): r = bin(n)[2:] for _ in range(2): if n % 2 == 0: r += '1' else: r += '0' if int(r,2) < 171: print(n) break И еще вопрос, почему для числа 9 в примере получается 100101? Число 9 нечетное, значит 2 раза должен приписаться 0, то есть должно получиться 100100. В условии ошибка или я понял его как-то не так?
|
|
|
Ответов - 4
[только новые]
|
|
|
| Администратор
|
Сообщение: 3477
|
|
Отправлено: 16.04.22 11:06. Заголовок: shervlad пишет: Числ..
shervlad пишет: цитата: | Число 9 нечетное, значит 2 раза должен приписаться 0 |
|
Нет, после первого добавления бита чётность числа изменилась.
|
|
|
|
Отправлено: 16.04.22 11:38. Заголовок: Но ведь в условии ск..
Но ведь в условии сказано: "если N чётное, в конец числа (справа) приписывается 1, в противном случае справа приписывается 0." Нигде не говорится про то, что второй раз алгоритм работает с изменившимся числом. Может быть, есть смысл немного изменить формулировку условия?
|
|
|
|
| Администратор
|
Сообщение: 3478
|
|
Отправлено: 16.04.22 11:52. Заголовок: Согласен с вами. Я п..
Согласен с вами. Я поправил условие.
|
|
|
|
Отправлено: 16.04.22 11:53. Заголовок: Благодарю :sm36:..
Благодарю
|
|
|
|