模拟,快速幂取模
最后答案为:
ans=(x%n+mpow(10,k)%n)%n;
代码如下
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,m,k,x;
ll pow(ll k)
{
ll a=10,cnt=1;
while(k>0)
{
if(k&1)cnt=cnt*a%n;
a=a*a%n;
k>>=1;
}
return cnt;
}
int main(){
// freopen("circle.in","r",stdin);
// freopen("circle.out","w",stdout);
cin>>n>>m>>k>>x;
ll ans=(x%n+(m%n*pow(k)%n))%n;
cout<<ans;
return 0;
}