美文网首页
剑指 offer 笔记 12 | 数值的整数次方

剑指 offer 笔记 12 | 数值的整数次方

作者: ProudLin | 来源:发表于2019-06-13 10:19 被阅读0次

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

    思路分析
    题目要求,int 类型的整数 exponent,那么意味着 exponent 可以是 正整数、负整数、零,三种情况。

    1)当 exponent 为正整数时,就要对 base 进行乘积几次,一个 for 循环即可;

    2)当 exponent 为负整数时,先对 exponent 取正,接着跟 1)一样,对 base 进行乘积几次;

    3)当 exponent 为零时,直接返回 1 即可;

    PS:可能有人在想,如果 传入的 double 类型的浮点数 base 为 0.0 时该怎么办,从数学上来说,传入 0 是没有任何意义的, 0 多少次幂都为 0;

    image.png
    public class Solution {
        public double Power(double base, int exponent) {
            double result = base;
            if(exponent > 0){    //当 exponent是正整数
                for(int i = 1; i < exponent; i++){
                    result *= base;
                        if(result > 1.7976931348623157E308){
                            System.out.println("已经超出double类型的取值范围。");
                            return -1;
                        }
                }
                return result;
            }else if(exponent < 0){    //当 exponent是负整数
                exponent = -exponent;
                 for(int i = 1; i < exponent; i++){
                    result *= base;
                        if(result > 1.7976931348623157E308){
                            System.out.println("已经超出double类型的取值范围。");
                            return -1;
                        }
                }
                return 1/result;
            }else{ // 当 exponent 为 0
                return 1;
            }
            
      }
    }
    

    参考文献https://www.nowcoder.com/profile/937880/codeBookDetail?submissionId=1514426
    https://www.nowcoder.com/profile/641155/codeBookDetail?submissionId=1504859

    相关文章

      网友评论

          本文标题:剑指 offer 笔记 12 | 数值的整数次方

          本文链接:https://www.haomeiwen.com/subject/vucjfctx.html