转圈游戏(NOIP2013)

传送门
这个这个……
写个取余的快速幂就好了。
代码如下:

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n,m,k,x;
long long pow_mod(long long x, long long n, long long mod){  
    long long res=1;  
    while(n>0){  
        if(n&1)res=res*x%mod;  
        x=x*x%mod;  
        n>>=1;  
    }  
    return res;  
}  
int main(){
    scanf("%d%d%d%d",&n,&m,&k,&x);
    long long ans=pow_mod(10,k,n);
    ans=ans*m%n;
    ans=(ans+x)%n;
    printf("%lld",ans);
    return 0;
}

猜你喜欢

转载自blog.csdn.net/cggwz/article/details/81783500