Пост канала
Решение: 1. В коде перепутаны ветки условия: при чётном количестве единиц должен дописываться 0, а при нечётном — 1, но в программе они переставлены местами, из-за чего чётность считается наоборот. 2. Ошибка в том, что срез после перевода в двоичную систему идёт на 3 знака, а не на 2. Получается, что программа срежет какую-то важную цифру, а не только '0b'. 3. По условию нужно удалять последнюю цифру двоичной записи, а не первую — в коде ошибочно используется срез, отрезающий первый символ, вместо среза, отрезающего последний символ. 4. Ошибка в переводе получившейся строки: символы строки s принадлежат пятеричной системе счисления, но при переводе обратно использована десятичная основа вместо пятеричной, из-за чего программа считает строку записанной в десятичной системе. 5. Ошибка в сортировке цифр: для того чтобы гарантированно упорядочить три числа по возрастанию с помощью парных обменов, нужно выполнить сравнение и обмен трижды (a и b, b и c, а затем снова a и b), а в коде сделаны только первые два сравнения. Из-за этого в некоторых случаях после второго обмена цифра a может оказаться больше b, и итоговый порядок a, b, c получается неверным, что портит построение наибольшего и наименьшего чисел.
Открыть в MAX- Просмотры
- 351
- ER
- 0,3%
- Реакции
- 1