【牛客网】数值的整数次方

来源:互联网 发布:淘宝网店数据包 编辑:程序博客网 时间:2024/05/21 09:57
  • 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。

  • 超时代码

class Solution {public:    double Power(double base, int exponent){         if (exponent == 0)return base;         double k = 1;         while (exponent--){         k *= base;        }       return k;    }//没有考虑到指数可能是负数};
  • AC的代码
class Solution {public:    double UnsignedPower(double base, unsigned int exponent){    if (exponent == 0)return 1.0;    if (exponent == 1)return base;    double result = UnsignedPower(base, exponent >> 1);    result *= result;    if (exponent & 1)        result *= base;    return result;   }    double Power(double base, int exponent) {    int flag = 1;    if (base-0.0>-0.0000001 && base-0.0<0.0000001)return 0.0;    if (exponent < 0){        flag = 0;        exponent =(-exponent);    }    double result = UnsignedPower(base, exponent);    if (flag == 0)result = 1.0 / result;    return result;    }//注意考虑到指数为负数,以及位运算的运用可以提高效率};
0 0
原创粉丝点击