首页 > 代码库 > 数值的整数次方

数值的整数次方

题目描述

给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
 
思路:

 1 关于次幂的问题特殊的情况,比如次幂为负数,或者基数为0时等等复杂的情况

 2 机器中浮点数的比较是由误差的,因此double类型的比较,不能用简单的a==0来比较。一般的比较方式是,相减的差在一个很小的区间内,我们就认为是相等的

 

class Solution {
public:
    double Power(double base, int exponent) {
    	double mul=1.0;
		 /* 如果exponent = 0 输出1 */
	        if(exponent == 0)
	        {
	            return 1.00000;
	        }

	        /* 如果base = 0 输出0 */
	        if(base >= -0.000001 && base <= 0.000001)
	        {
	            return 0;
	        }
	        /* 如果指数大于0 */
	        if(exponent > 0)
	        {
	            for(int index = 0; index < exponent; index++)
	            {
	                mul *= base;
	            }
	        }
	        else
	        {
	            exponent = -exponent;
	            for(int index = 0; index < exponent; index++)
	            {
	                mul *= base;
	            }
	            mul = 1.0/mul;
	        }


	        return mul;
    }
};

  

http://blog.csdn.net/qq_23217629/article/details/51729501

http://blog.csdn.net/Yanfucahng/article/details/52876300?utm_source=itdadao&utm_medium=referral

 

数值的整数次方