码迷,mamicode.com
首页 > 其他好文 > 详细

16、数值的整数次方

时间:2019-12-20 11:36:36      阅读:82      评论:0      收藏:0      [点我收藏+]

标签:exp   情况   bool   题目   出错   字段   没有   span   one   

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、数值的整数次方

标签:exp   情况   bool   题目   出错   字段   没有   span   one   

原文地址:https://www.cnblogs.com/guoyu1/p/12071984.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!