#python
#python
Вопрос:
Я практиковал Python3 в leetcode. Я должен создать функцию питания, в которой я не использую «**». Когда показатель степени (n) положительный, мой код работает, но когда он отрицательный, он не работает. Когда он отрицательный, я пытаюсь разделить 1 на результат, но он действует так, как будто результат всегда равен 1. В этом случае вместо деления 1/4 похоже, что оно делает 1/1. Знает ли any1, в чем проблема?
Комментарии:
1. Попробуйте вернуть float(1 / res).
Ответ №1:
Ваша проблема в том, что когда n < 0 у вас есть
for i in range(n):
Это должно быть:
for i in range(-n):
Пересмотренный код
def my_pow(x, n):
res = 1
if n > 0:
for i in range(n):
res = res*x
return res
if n < 0:
for i in range(-n):
res = res*x
return 1/res
return res