美文网首页
用二分法计算a的n次幂<算法分析>

用二分法计算a的n次幂<算法分析>

作者: 咬烂笔杆子 | 来源:发表于2019-11-05 16:35 被阅读0次

实验目的:

1、复习java编程;
2、掌握二分法的基本原理;
3、掌握使用java程序进行二分法计算a的n次幂。

实验步骤:

1、由用户输入a及n(均为整数);
2、利用二分法完成计算,并将中间结果打印出来。

package erfencimi;
import java.util.Scanner;
public class Power {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        //输入a和n数值
        System.out.print("请输入 a 的值:");
        int a = scanner.nextInt();
        System.out.print("请输入 n 的值:");
        int n = scanner.nextInt();
        int c=0;
        System.out.println("a = " + a + "\t" + "n = " + n);
        //打印输出二分过程
        for(int b=1;b<=n;n=n/2)
        {
            System.out.println(a + "的" + n + "次方为(第"+c+"次二分):" + function(a, n));
            c++;
        }  
        c=c-1;
        //二分次数总计
        System.out.println("总共进行了" + c + "次二分!");
    }
     
    //求二分次幂函数
    private static long function(int a, int n) {       
        if(n == 1) {            //指数是1时直接返回数字a
            return a;
        } else {
            if(n % 2 == 0) {    //如果是偶数次幂直接将指数进行二分
                return (int)Math.pow(function(a, n/2), 2);
            } else {            //如果是奇数次幂将指数减一再进行二分
                return (int)Math.pow(function(a, (n-1)/2), 2) * a;
            }
        }
    }
}

运行结果如下:

image image.png

相关文章

  • 分治法的常见问题

    计算x的n次幂 朴素算法:xxx...... 分治算法: n为偶数:x的n/2次幂*x的n/2次幂 n为奇数:x的...

  • 用二分法计算a的n次幂<算法分析>

    实验目的: 1、复习java编程;2、掌握二分法的基本原理;3、掌握使用java程序进行二分法计算a的n次幂。 实...

  • 数据结构-二分法求幂-C

    二分法求幂 数据结构中二分法运用到求幂提高计算效率方式,算法精简这里做个简单解释及代码 原理自析 如求2^32: ...

  • 50. Pow(x, n)

    问题 Implement pow(x, n). 例子 pow(8, 8)16777216 分析 二分法快速幂 要点...

  • Leetcode-50: Pow(x,n)

    ** 题目描述:**实现 [pow(x, n)],即计算 x 的 n 次幂函数。 思路:采用分治的思想,将n次幂转...

  • 50. Pow(x,n) 次方运算

    题目 实现一个 pow(x,n) 计算 x 的 n 次幂。 解析 常规计算即可,如果 n 为负,对 x 多次扩展后...

  • (́安◞౪◟排‵)

    1.计算2的n次幂,n可输入,n为自然数 var n=parseint(window.prompt(“input”...

  • 计算M的N次幂

    当指数非常大时候(比如1000,10000),直接调用C的库函数,会导致溢出。用此函数可正确计算指数结果,无论指数...

  • JS补充8

    1.计算2的n次幂,n可输入,n为自然数。 var n=parseInt( window. prompt(“inp...

  • 2.13 实战:快速设计一个高效的求a的n次幂的算法

    Chapter2: 时间复杂度分析、递归、查找与排序 13. 实战:快速设计一个高效的求a的n次幂的算法 问题 设...

网友评论

      本文标题:用二分法计算a的n次幂<算法分析>

      本文链接:https://www.haomeiwen.com/subject/dvhebctx.html