【NOIP2013】转圈游戏 快速幂

题目大意:给你四个整数$n,m,k,x$,求$(x+m\times 10^k)%n$。

直接一个快速幂就好了,注意开$long\ long$。

 1 #include<bits/stdc++.h>
 2 #define L long long
 3 using namespace std;
 4 L MOD,m,k,x;
 5 L pow_mod(L x,L k){
 6     L ans=1;
 7     while(k){
 8         if(k&1) ans=ans*x%MOD;
 9         x=x*x%MOD; k>>=1;
10     }
11     return ans;
12 }
13 int main(){
14     cin>>MOD>>m>>k>>x;
15     cout<<(x+m*pow_mod(10,k))%MOD;
16 }

 

posted @ 2018-10-05 20:57  AlphaInf  阅读(199)  评论(0编辑  收藏  举报