[剑指offer] 12. 数值的整数次方

题目描述

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

用求快速幂方法,循环替代递归减少运行时间。
考虑指数正负问题。
class Solution
{
public:
  double Power(double base, int exponent)
  {
    long exp = abs(exponent);
    double res = 1.0;
    while (exp)
    {
      if (exp & 1)
        res *= base;
      base *= base;
      exp >>= 1;
    }
    return exponent > 0 ? res : 1 / res;
  }
};

 

posted @ 2018-12-01 14:46  Ruohua3kou  阅读(109)  评论(0编辑  收藏  举报