简而言之,是求(m * 10k)%n,就是m * 10k%n,10k%n快速冥。
#include<bits/stdc++.h>
using namespace std;
long long k,l,m,n;
void sf(){//ha=10^k%n
long long ha=1,kao=10;
while(k){
if(k&1) ha=ha*kao%n;
kao=kao*kao%n;
k>>=1;
}
m*=ha;
m%=n;
}
int main(){
// freopen("circle.in","r",stdin);
// freopen("circle.out","w",stdout);
scanf("%lld%lld%lld%lld",&n,&m,&k,&l);
sf();
printf("%lld",(l+m)%n);
return 0;
}