作为一名新的python程序员,我正在解决一个Leetcode问题,不知道为什么我的代码不能工作,所以我非常感谢您的建议: 问题: 实现pow(x, n)计算x的n次方。 例子: 输入:2.00000,10 输出:1024.00000 这是我的python代码(我尝试使用分治的概念):
class Solution:
def myPow(self, x, n):
if n == 0:
return 0
if n == 1:
return x
return self.power(x,n)
def power(self,x,n):
if n == 1:
return x
self.power(x,n//2)
self.multiply(x,x)
return x
def multiply(self,x,y):
x = x*y
return x
test3=Solution()
test3.myPow(2,4)
但是结果是2而不是16。我希望上述代码的工作如下: 功率(2、4)- >电源(2,2)- >电源(2,1),而达到n = = 1以来的基本情况,然后我们继续力量(2,2),由于函数乘以(x, x)或乘(2,2)在这种情况下,我希望x成为4 (x = 2 * 2),然后我们继续力量(2、4),由于函数乘以(x, x), x = 4 * 4 = 16 我不知道为什么我错了,有专家可以给我一些建议吗? 问题来源StackOverflow 地址:/questions/59382900/python-divide-and-conquer-implementation-of-nth-power-of-x
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
x^0总是等于1,所以myPow()中的第一个“if”是不准确的。 另外,power()函数总是返回x,因为这几行:
self.power(x,n//2)
self.multiply(x,x)
不要把它们返回的值赋给任何东西。