Skip to content

Latest commit

 

History

History
62 lines (50 loc) · 1.32 KB

20200902.md

File metadata and controls

62 lines (50 loc) · 1.32 KB

Algorithm

剑指offer-数值的整数次方

Description

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

保证base和exponent不同时为0。

Solution

public class Solution {
    private double power(double base, int exponent) {
        if(exponent == 1){
            return base;
        }
        // 偶数
        if((exponent&1)==0){
            int temp = (int)power(base, exponent>>1);
            return temp*temp;
        }else{
            int temp = (int)power(base, (exponent-1)>>1);
            return temp*temp*base;
        }
    }
    public double Power(double base, int exp) {
        if (base == 0) {
            if (exp > 0){
                return 0;
            }
            else if (exp == 0){
                return 0;
            }
            else {
                throw new RuntimeException();
            }
        } else {
            if (exp > 0){
                return power(base, exp);
            }
            else if (exp == 0){
                return 1;
            }
            else{
                return 1 / power(base, -exp);
            }
        }
    }
}

Discuss

Review

Tip

Share