标签: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
标签:exp 情况 bool 题目 出错 字段 没有 span one
原文地址:https://www.cnblogs.com/guoyu1/p/12071984.html