Найти - Пользователи
Полная версия: Помогите решить задачу степень с отрицательным показателем в питоне
Начало » Python для новичков » Помогите решить задачу степень с отрицательным показателем в питоне
1
datchik94
Помогите решить задачу:

Напишите рекурсивную функцию, возводящую число a в степень n. Гарантируется, что все числа “помещаются” в стандартные вещественные (a и ответ) и целые (n) типы.

Входные данные
Вводится 2 числа - a и n (число n может быть отрицательным).

Выходные данные
Необходимо вывести значение a в степени n

Моё решение(python3):

D=input().split()
a=float(D)
n=int(D)
def power(a, n):
if n>0:
if n==0:
a=1
else:
a=a*power(a, n-1)
return a
else:
if n==0:
a=1
else:
a=power(a, n+1)/a
return a
print(power(a, n))

Вроде бы всё правильно, но на сайте 2 теста из 44 не проходит (ошибка во время выполнения программы)

Скажите, пожалуйста, что не так?

Rodegast
 >>> def pwr(a, n):
...     if n > 0:
...         return a * pwr(a, n-1)
...     elif n < 0:
...         return 1.0 / pwr(a, -n)
...     return 1
datchik94
Такое решение не подойдёт, т.к. значения подаются в одну строку, например:
1 -2
а не в столбик:
1
2

К тому же не думаю что из-за разной подачи данных могут произойти ошибки

P.S. Так: return 1.0 / pwr(a, -n), а не так: a=a*power(a, n-1) тоже пробовал, но разницы никакой
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB