Форум » Динамическое программирование » задание 23 № 133 » Ответить

задание 23 № 133

aei_73: Не сходится с ответом. В чем ошибка 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

polyakovss: Внимательно читаем условие задачи: исходное двоичное число 100001 преобразуют в двоичное число 100 Поэтому: print(kp(33,4))

aei_73: Был распечатан старый вариант задачи, а там было значение 10001, теперь все понятно, просто была исправлена формулировка. Учту на будущее, что надо проверять файл . Спасибо за ответ

Алексей Комков: команду "Убрать последнюю цифру справа" в двоичной СС, можно заменить на команду "разделить нацело на 2" в десятичной СС. И тогда не нужны велосипеды с переводом в разные системы счисления.




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