模板—十进制快速幂

Posted al-ca

tags:

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

用于指数爆longlong的情况,当然你也可以打高精……

因为昨天有人提到了慢速乘,感觉挺有用的,就顺便都学了吧,而且省选也用到十进制快速幂了。

#include<iostream>
#include<cstring>
#include<cstdio>
#define LL long long
using namespace std;
char c[100000];
LL a,p,t;
LL tenthpow(LL a)

	LL ans=1,s=a;
	while(t>=0)
	
		LL cnt=c[t]-‘0‘,cur=s;
		for(int i=1;i<=cnt;i++)
		ans=ans*s%p;
		for(int i=1;i<10;i++)
		cur=cur*s%p;
		s=cur;ans%=p;t--;
	
	return ans;

signed main()

	cin>>a>>c>>p;
	t=strlen(c);t--;
	cout<<tenthpow(a)<<endl;

 

以上是关于模板—十进制快速幂的主要内容,如果未能解决你的问题,请参考以下文章

快速幂详解[二进制][十进制]+模板

常用算法模板 | 快速幂

快速幂基本模板

快速幂模板

LuoguP1226 模板快速幂||取余运算

[每日一题2020.06.15]P1226 模板快速幂取余运算