16数值的整数次方

Posted guoyu1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了16数值的整数次方相关的知识,希望对你有一定的参考价值。

1、题目描述:实现函数 double Power(double base, int exponent) ,求base的 exponent 次方。不得使用库函数,同时不需要考虑大数问题。

2、思路:拿到题目后要考虑全所有的base和exponent的可能值,同时要考虑非法输入,这里容易忽略的非法输入是0的负数次方,这个在数学中是没有意义的,不允许出现的

 

补充知识:

在数学中,0的任何正数次方都是0。

0没有0次幂和负数次幂,0的0次方没有意义。

import java.util.*;

public class Solution {
    public static double Power(double base, int exponent) {
        //首先要校验让程序出错的非法输入
        //定义一个字段,当遇到非法输入,即base为0,指数为负数或0,没有意义,程序出错,进行标识。
        boolean invalidInput=false;
        if(base==0 && exponent<=0){
            invalidInput=true;
            return 0;
        }

        double result=0;
        //指数为负数,先求正数次方,再求倒数
        if(exponent<0){
            result=powerWithUnsignedExponent(base,-exponent);
            result=1/result;
            return result;
        }else{
            result=powerWithUnsignedExponent(base,exponent);
            return result;
        }

    }

    public static double powerWithUnsignedExponent(double base, int exponent){
        double count=1.0;
        for(int i=1;i<=exponent;i++){
            count*=base;
        }
        return count;
    }
}

  主要考察的是代码的完整度,考虑全所有的情况。同时程序出错有3中错误处理方式。见剑指offer p110。

3、优化解法//TODO

以上是关于16数值的整数次方的主要内容,如果未能解决你的问题,请参考以下文章

剑指offer16数值的整数次方

附可运行代码剑指 Offer 16. 数值的整数次方

附可运行代码剑指 Offer 16. 数值的整数次方

16. 数值的整数次方

11 数值的整数次方

面试题16:数值的整数次方