AcWing 875. 快速幂

Posted MangataTS

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AcWing 875. 快速幂相关的知识,希望对你有一定的参考价值。

题目链接

https://www.acwing.com/problem/content/877/

思路

思路大概就是幂数转化为二进制,然后我们用一个变量记录累乘的结果,然后位权为1的时候我们就将ans更新即可,详情可以看我这一篇博客:https://acmer.blog.csdn.net/article/details/122280910

代码

#include <bits/stdc++.h>
using namespace std;
#define ll long long

int n;
ll a,b,p;

ll ksm(ll a,ll b,ll p)
	ll ans = 1LL;
	while(b) 
		if(b & 1) ans = (ans * a) % p;
		b >>= 1; a = (a * a) % p;
	
	return ans;


int main()

	scanf("%d",&n);
	while(n--)
		scanf("%lld %lld %lld",&a,&b,&p);
		printf("%lld\\n",ksm(a,b,p));
	
	
	return 0;

以上是关于AcWing 875. 快速幂的主要内容,如果未能解决你的问题,请参考以下文章

ACwing89 a^b 快速幂取模

快速幂讲解-And-AcWing-89. a^b

AcWing 876. 快速幂求逆元

快速幂讲解-And-AcWing-89. a^b-《算法竞赛进阶指南》

ACM入门之快速幂

[数论+模板] 快速幂及快速幂求逆元算法模板(模板)