【LeetCode 50】Pow(x, n)

	// 递归计算
	public double myPow(double x, int n) {
    
    
    	if (n == 1)
    		return x;
    	if (n == -1)
    		return 1/x;
        if (n == 0)
            return 1;
    	if (n % 2 == 0)
    	{
    
    
    		double tmp = myPow(x, n/2);
    		return tmp * tmp;
    	}
    	else
    	{
    
    
            if (n > 0)
            {
    
    
            	double tmp = myPow(x, n/2);
            	return tmp * tmp * x;
            }
    			
            else
            {
    
    
            	double tmp = myPow(x, n/2);
            	return tmp * tmp * 1/x;
            }	
    	}	
    }
	
	// 迭代计算
	public static double myPow_V2(double x, int n) {
    
    
		double ret = 1;
		int p = 0;
		while (n > 0)
		{
    
    
			if (n % 2 == 1)
			{
    
    
				ret *= x;
			}
			x *= x;
			n /= 2;
		}
		return ret;
	}

Supongo que te gusta

Origin blog.csdn.net/juttajry/article/details/121927555
Recomendado
Clasificación