求(m*10^k+x)%n即可
1 #include2 #include 3 #include 4 #define LL long long int 5 using namespace std; 6 7 LL rd(){ 8 LL x=0;char c=getchar();int neg=1; 9 while(c<'0'||c>'9'){ if(c=='-') neg=-1;c=getchar();}10 while(c>='0'&&c<='9') x=x*10+c-'0',c=getchar();11 return x*neg;12 }13 14 LL modp(LL x,int k,int n){15 LL re=1;16 while(k){17 if(k&1) re=re*x%n;18 k>>=1;x=x*x%n;19 }return re;20 }21 22 int main(){23 int n=rd(),m=rd(),k=rd(),x=rd();24 printf("%d\n",(modp(10,k,n)*m+x)%n);25 }