面试题:数值的整数次方

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

思路:分为正数负数零

public class Solution {
    public double Power(double base, int exponent) {
        //正数、负数、零
        double temp=1;
        if(exponent>0){
            for(int i=0;i<exponent;i++){
                temp=temp*base;
                if(temp>1.7976931348623157E308){
                    System.out.println("已经超出了double类型的取值范围");
                        return -1;
                }
            }
            return temp;
        }
        if(exponent<0){
            exponent=-exponent;
            for(int i=0;i<exponent;i++){
                temp=temp*base;
                if(temp>1.7976931348623157E308){
                    System.out.println("已经超出了double类型的取值范围");
                        return -1;
                }
            }
            temp=1.0/temp;
            return temp;
        }else{
            return 1;
        }
    }
}

注意一个小细节:这样写会提示没有返回值

public class Solution {
    public double Power(double base, int exponent) {}
        double temp=1;
        if(exponent>0){
           ......
            return temp;
        }
        if(exponent<0){
            ......
            return temp;
        }
        if(exponent==0){
            return 1;
        }
    }
}

应该这样写:

public class Solution {
    public double Power(double base, int exponent) {}
        double temp=1;
        if(exponent>0){
           ......
            return temp;
        }
        if(exponent<0){
            ......
            return temp;
        }else{return 1;
        }
    }
}

 

posted on 2018-08-23 17:31  Aaron12  阅读(114)  评论(0编辑  收藏  举报

导航