每日分享:
要相信,所有的不美好都是为了迎接美好,所有的困难都会为努力让道。
1. 作用
快速幂函数是处理像 a^b%c 这类式子,当a^b特别大的时候,计算它的值就非常浪费时间和空间。
2. 如何记忆
2.1 首先知道如何计算 a^b
举个例子:计算3^10
3^10 = 9^5
9^5 = 9*81^2
81^2 = 6561^1
所以 3^10 可以拆分成 9*6561^1
通过上面的拆分计算,可以减少循环的次数,降低时间复杂度(暴力计算 3^10 需要循环10次)
代码实现:
typedef long long ll;
// a=3,b=10,先忽略c
ll fast_power(ll a,ll b,ll c)
{
// 定义ans记录结果
ll ans=1;
// 指数为0时停止循环(指数为1时(ans=9,a=6561),会进入if语句中,ans=9*6561计算出来就是想要的结果了,所以说不能把