快速幂:
描述:求a的b次幂再取余m
通常写法:开一个int ans=0,ans = ans * a % m,执行一共b次:
for(int i=0;i<b;i++)
{
ans = ans * a % m;
}
cout << ans;
“显然时间不够优秀”。
快速幂思路: 基于二分法的思想,如果b是奇数:a的b次幂=aa的b-1次幂 ,
如果b是偶数,a的b次幂=a的b/2次幂 * a的b/2次幂 。
比如:2的10次幂=a的5次 * a的5次
2的5次=22的4次
……
直到2的0次等于1为止,return 回去;
ll binaryPow(ll a, ll b