快速幂的求解-java方法(int范围之内)

Posted 给我一个团队,干翻TX

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快速幂的求解-java方法(int范围之内)相关的知识,希望对你有一定的参考价值。

思想就是,将十进制数化成二进制数。其它就是很简单了。

如:2的11次幂,11的二进制位1011,所以2(11) = 2(2(0) + 2(1) + 2(3));

具体实现步骤,看代码比较简单

import java.util.Scanner;

public class Main
{
    public static void main(String[] args)
    {
        Scanner cin = new Scanner(System.in);
        //底数
        int a = cin.nextInt();
        //指数
        int b = cin.nextInt();
        int sum = 1;
        int temp = a;
        while(b != 0)
        {
            //取其末位
            if((b & 1) != 0)
            {
                sum = sum * temp;
            }
            temp = temp * temp;
            //除其末位
            b = b>>1;
        }
        System.out.print(sum);
    }
}































以上是关于快速幂的求解-java方法(int范围之内)的主要内容,如果未能解决你的问题,请参考以下文章

大数相乘的快速乘技巧

浅谈矩阵快速幂

hdu 5187 基于快速幂的快速乘法

求解所有的变量的所有次幂的每一种的和

快速幂快速乘

幂的末尾