欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

求x的n次幂算法Pow(x, n)

程序员文章站 2022-07-12 12:02:51
...

以下算法复杂度为log(n)。

class Solution {
public:
    double myPow(double x, int n) {
    	double ans = 1;
    	unsigned long long p;
    	if (n < 0) {
    		p = -n;
    		x = 1 / x;
    	} else {
    		p = n;
    	}
	while (p) {
		//判断二进制p末位是否为1
		if (p & 1)
			ans *= x;
		x *= x;
		//p右移1位
		p >>= 1;
	}
	return ans;
    }
};