Pow(x, n)

Pow(x, n),计算(x^n)

以下是C++代码

class Solution {
public:
	double pow(double x, int n) {

		// 四种不需要计算的情况
		if (n == 0||x==1){ return 1; }
		
		if (x == -1){
			if (n % 2 == 0)
				return 1;
			else
				return -1;}
		
		if (n == 1) return x;
		
		// 减少不必要的重复计算
		if (n < 0){ 
			return 1/pow(x, -n); }
		else{
			if (n % 2 == 0){
				double res = pow(x, n / 2);
				return res*res;
			}
			else{
				double res = pow(x, (n - 1) / 2);
				return res*res*x;
			}
		}
	}
};
原文地址:https://www.cnblogs.com/iois/p/4295331.html