题解 CF630L Cracking the Code

前言

为什么没有人暴力快速幂啊,Ta不香嘛/kel

题意

设读入为 \(abcde\) ,求 \(acedb^5\mod{10^5}\) 的结果。

\(\sf {Solution}\)

显然暴力啊。

先把每一位求好然后把新数算出来。

快速幂就行了。

\(\sf {P.S.}\)

输出格式:一行,5个数字,没有间隔符。

若结果为 \(0\) 得输出00000

\(\sf {Code}\)

#include<iostream>
using namespace std;
#define ll long long
ll n;
const int mod=100000;
ll f(ll x,ll y)
{
    if(y==1)
        return x;
    ll q=f(x,y/2)%mod;
    q=(q*q)%mod;
    if(y%2==1)
        return (q*x)%mod;
    else return q%mod;
}//快速幂
int main()
{
	ios::sync_with_stdio(false);
	cin>>n;
	ll m=(n/1000%10)+(n/10%10)*10+(n%10)*100+(n/100%10)*1000+(n/10000%10)*10000,q=f(m,5);//m为重新组装后的数
	if(q==0)
		cout<<"00000\n";//特判0
	else cout<<q<<"\n";
	return 0;
}
posted @ 2020-10-04 17:30  Callous_Murder  阅读(38)  评论(0编辑  收藏  举报