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

12.数值的整数次方

题目

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

保证base和exponent不同时为0

思路

问题也不是很大,如果不是要求效率就可以直接分类讨论,一个循环解决,要求效率的话就要用快速幂,我没用快速幂,就分类讨论了一下,最后输出结果。

代码

  public double Power(double base, int exponent) {
    if (exponent == 0) {
      return 1;
    }
    if (base == 0) {
      return 0;
    }
    double ans = 1;
    boolean flag = false;
    if (exponent > 0) {
      flag = true;
    } else {
      flag = false;
      exponent = -exponent;
    }
    for (int i = 1; i <= exponent; i++) {
      ans = ans * base;
    }
    if (!flag) {
      ans = 1.0 / ans;
    }
    return ans;
  }
posted @ 2020-02-27 22:07  cheng102e  阅读(...)  评论(...编辑  收藏