Автор | Сообщение |
|
Отправлено: 20.03.21 12:22. Заголовок: задание 23 № 133
Не сходится с ответом. В чем ошибка def kp(x,t): if x == t: return 1 if x < t: return 0 if x > t: x1 = bin(x)[2:] x1 = (x1)[:-1] return kp(x-1,t)+kp(int(x1,2),t) print(kp(17,4))
|
|
|
Ответов - 3
[только новые]
|
|
|
Отправлено: 20.03.21 13:49. Заголовок: Ответ
Внимательно читаем условие задачи: цитата: | исходное двоичное число 100001 преобразуют в двоичное число 100 |
|
Поэтому: print(kp( 33,4))
|
|
|
|
Отправлено: 20.03.21 16:03. Заголовок: Был распечатан стары..
Был распечатан старый вариант задачи, а там было значение 10001, теперь все понятно, просто была исправлена формулировка. Учту на будущее, что надо проверять файл . Спасибо за ответ
|
|
|
|
Отправлено: 22.03.21 09:06. Заголовок: команду "Убрать ..
команду "Убрать последнюю цифру справа" в двоичной СС, можно заменить на команду "разделить нацело на 2" в десятичной СС. И тогда не нужны велосипеды с переводом в разные системы счисления.
|
|
|
|