用java学算法(一) 快速幂与大数快速幂

java有很多库可以使用,这些库可以节省很多麻烦,让我们学算法可以更快的掌握思想,所以此系列的教程都是用java写的代码。

快速幂是很多新手在入门阶段遇到的第一个BOSS,主要难点是突然遇到很多新的语法和用法使得新手突然懵逼,无从下手。

首先我们看看普通的幂的计算方法。

public static long pow(long a, int n) {
        long result=1;
        while (n-- > 0) {
            result *= a;
        }
        return result;
    }

普通的计算的过程就是计算n-1次乘法,也就是这里写图片描述
要是计算这里写图片描述 那就要算50-1=49次乘法,非常麻烦。有什么快捷方法呢?
这时候我们就要用到数学的公式来帮我们优化了。
首先我们看到这么几个公式
这里写图片描述
我们不妨把50看做25×2,利用公式2逆推可以得到

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值