[Codewars]-Last digit of a large number

这篇博客介绍了如何使用快速幂取模方法来计算大数字的最后一位。通过讲解快速幂的公式和原理,解释了如何避免计算大数时的时间复杂度问题。文章以 Codewars 的一道题为例,展示了 Python 实现的解决方案,并提到了 JavaScript 中处理大数的限制。
摘要由CSDN通过智能技术生成

大数字的最后一位数字(Last digit of a large number) ——大数取模

题目:
  • 题目很简单,给出a,b两个数字,计算 ab a b 的最后一位数字。
  • 例如:a=2,b=4 ab=24=16 a b = 2 4 = 16 ,故16的最后一位数字应该是6
思路:
  • 对于小数,直接计算然后取模(%10)就可以了
  • 但是对于大数,往往就会计算不出来或者十分费时。
  • 想了很久,做了很多尝试方案,发现都是时间爆栈了。。
  • 后来百度了下才发现这个叫快速幂取模。。。可怜楼主没有ACM经验,数学数论也不行。。。
  • 那我们直接根据快速幂取模的方法计算就可以了。
讲解快速幂取模:

首先有如下公式:

ab%m=[(a%m)(b%m)]%m a ∗ b % m = [ ( a % m ) ∗ ( b % m ) ] % m

其证明过程如下:
a=a1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值