剑指Offer——数值的整数次方

来源:互联网 发布:消防知识知多少作文 编辑:程序博客网 时间:2024/06/05 15:25

题目描述

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

解题思路

  1. exponent为负数,结果取倒数
  2. 从二进制的角度看
    21121011=2100021021
    那么程序如下
public class Solution {    public double Power(double base, int exponent) {        double result = 1.0;        int e = Math.abs(exponent);        while(e != 0){            if((e&1) == 1)result *= base;            base *= base;            e >>= 1;        }        if(exponent < 0)result = 1 / result;        return result;  }}
原创粉丝点击