Sword to Offer-16 数值的整数次方 ❀

  • 题目描述:
    给定一个double类型的浮点数baseint类型的整数exponent。求baseexponent次方。 保证baseexponent不同时为0

解题思路:

主要考察数学上的分类情况
1、底数为000次方无意义,0的非0次方为0;
2、底数非0:先按正数进行连乘计算次方,若为负数的次方,则需要求倒数。

问题图解:

AC代码:

// Number's Integer Power

public class Solution {
    public double Power(double base, int exponent) {
        if (base==0) {
            if (exponent==0) {
                return -1;  //0的0次方无意义
            }
            else {
                return 0;  //0的非0次方等于0
            }
        }
        double res = 1;  //res为最终结果,初始值为1
        boolean minus = false;  //指示次方是否为负数
        if (exponent<0) {
            minus = true;
            exponent = -exponent;
        }
        while (exponent>0) {
            res = res * base;
            exponent--;
        }
        return minus ? 1/res : res;
  }
}

补充说明:

Comments


yangzail © 2020. All rights reserved.

Powered by Hydejack v8.5.2