模板―十进制快速幂

匿名 (未验证) 提交于 2019-12-02 23:48:02

用于指数爆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; } 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!