Вот рассматриваемый рекурсивный код:
def trace(a, b):
if (a > b):
return -1
elif (a == b):
print (a * a)
return a * a
else:
m = (a + b) / 2
return trace (a, m) + trace (m + 1, b)
x=trace(1,4)
хотя я не уверен, что эта функция должна делать, мы должны найти вывод x=trace(1,4)
вместе со значением x вручную (это означает, что мы не можем использовать простоя, чтобы помочь нам).
Через некоторое время я определил, что функция напечатает 1 и 12,25, что и будет выводом при присвоении x значению trace(1,4)
.
Однако я не знаю, как определить, каким будет значение X. Хотя ответ равен -91,75, я не имею ни малейшего представления о том, как он был получен (хотя я знаю, как, потребовалась бы целая вечность, чтобы придумать этот ответ, и я не уверен, как мы можем быстро придумать ответ). решение за короткий период времени, например, при написании экзамена).
Заранее спасибо за помощь!
m = (a + b) // 2
. Таким образом, это будет работать одинаково в Python2 и Python3. - person Eric Duminil   schedule 12.12.2017