Ответ: Исправление программы степени 4
1) При вводе 64 программа выведет 21. 2) Например, при вводе 4 программа выведет 1, что является правильным ответом. 3) Исправления в Python: строку «k = k + n // 4» заменить на «k = k + 1»; строку «if n > 0:» заменить на «if n == 1:».
У этого задания официального ключа нет, поэтому ответ получен в разборе и с ключом не сверен. Перед тем как заучивать результат, пройдите выкладки — там видно, откуда взялось каждое число.
Дано целое положительное число $N$, не превосходящее 1000. Нужно написать программу, которая определяет, является ли это число степенью числа 4: выводит на экран либо такое целое число $K$, что $4^K=N$, либо сообщение «NO», если такого числа не существует.
Программист написал программу неправильно. Ниже приведена написанная им программа на языке Python.
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 64.
2. Приведите пример числа, при вводе которого приведённая программа, несмотря на ошибки, выведет правильный ответ.
3. Найдите допущенные программистом ошибки и исправьте их. Исправление ошибки должно затрагивать только строку, в которой находится ошибка. Для каждой ошибки выпишите строку, в которой сделана ошибка, и правильный вариант этой строки.
Известно, что в тексте программы можно исправить ровно две строки так, чтобы она стала работать правильно. Достаточно указать ошибки и способ их исправления для языка Python. Требуется найти ошибки в имеющейся программе, а не написать другую программу, использующую иной алгоритм решения.
Где здесь ошибаются
Указывать для числа 64 ответ 3, не вычислив вывод именно ошибочной программы.
Исправлять строку «n = n // 4», хотя деление выполнено правильно.
Использовать условие «if n > 0:», которое принимает любое положительное ненулевое значение, например $n=2$.
Предлагать новую программу вместо исправления ровно двух строк исходной.