剑指offer#16.数值的整数次方
数值的整数次方:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 保证base和exponent不同时为0 解法一:使用循环来求 分析:注意考虑特殊情况,当底数为0,如果指数是正整数,则可以返回1,如果底数为0,指数是负整数,那么就会出错,而且如果底数不是0,指数是负整数,则返回的应该是底数和正整数运算结果的倒数。因此要考虑齐全。 double PowerWithUnsignedExponent(double base,unsigned int exponent){ double result = 1.0; for(int i=1;i<=exponent;i++) result *= base; return result; } double Power(double base, int exponent) { g_InvalidInput = true; if(base - 0.0 <= 1e-6 && exponent < 0){ g_InvalidInput = false; return 0.0; } unsigned int absExponent = (unsigned int)exponent; if(exponent<0){ absExponent = (unsigned int)(-exponent);