《剑指offer》数学第一题:数值的整数次方

发布时间:2024年01月04日

题目描述:

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

?思路:

? ? ? ? 给定一个浮点数求它的整数次方。要考虑到所有的情况,关于指数,如果是0,则结果是1;

指数是1,结果是base;指数是-1,结果是1.0/base。

? ? ? ??我们在计算一个数的多次幂时,可以先判断其幂次的奇偶性,然后:

  • 如果幂次为偶直接 base(底数) 作平方,power(幂次) 除以2。

  • 如果幂次为奇则底数平方,幂次整除于2然后再多乘一次底数。

?

?代码实现:

package 数学;

import java.util.Scanner;

public class Math1 {

    public double solution(double base,int exponent)
    {
        if(exponent==0)
            return 1;
        if(exponent==1)
            return base;
        if(exponent==-1)
            return 1.0/base;
        double h=Math.pow(base,exponent/2);
        return h*h*solution(base,exponent%2);
    }

    public static void main(String[] args) {
        Math1 m=new Math1();

        Scanner sc=new Scanner(System.in);
        double base=sc.nextDouble();
        int exponent=sc.nextInt();

        System.out.println(m.solution(base,exponent));
    }
   
}

测试结果:

文章来源:https://blog.csdn.net/y6533/article/details/135383592
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。