50-Pow(x,n)
题目:求x的n次方
def myPow(x,n): if not n: return 1 if n<0: return 1 / myPow(x,-n) if n % 2: return x*myPow(x,n-1) return myPow(x*x,n//2)
注:
如果n为0,直接返回1;
如果n小于0,则n取相反数求-n次幂之后,取倒数;
如果n大于0,采用分治的方法,如果n为奇数,转为n-1次方乘以x,如果n为偶数,计算x1/2,然后平方。
题目:求x的n次方
def myPow(x,n): if not n: return 1 if n<0: return 1 / myPow(x,-n) if n % 2: return x*myPow(x,n-1) return myPow(x*x,n//2)
注:
如果n为0,直接返回1;
如果n小于0,则n取相反数求-n次幂之后,取倒数;
如果n大于0,采用分治的方法,如果n为奇数,转为n-1次方乘以x,如果n为偶数,计算x1/2,然后平方。