C-丢手绢_2022河南萌新联赛第(五)场:信息工程大学 (nowcoder.com)
使用快速幂不断计算(10^k)%n,去掉多余 的轮数
#include<bits/stdc++.h>
using namespace std;
long long ksm(long long a,long long b,long long t)
{
if(b==1)return 10;
if(b%2)
{
long long result=ksm(a,b/2,t)%t;
return (result*result*a)%t;
}
else
{
long long result=ksm(a,b/2,t)%t;
return (result*result)%t;
}
}
int main()
{
//freopen("C:\\Users\\Lenovo\\Desktop\\input.txt","r",stdin);
long long n,m,k,x,q;
scanf("%lld%lld%lld%lld",&n,&m,&k,&x);
q=ksm(10,k,n);
long long ans=(x+(m*q)%n)%n;
cout<<ans<<endl;
return 0;
}