太久没写快速幂了...
这是一道数学题orz,能看出来的话答案就是 ,但是很大,同时还要mod n,直接用快速幂即可。
快速幂模版:
long long int power(long long int a,long long int b,long long int mod){
long long int res=1;
while(b){
if(b&1){
res=(res*a)%mod;
}
a=(a*a)%mod;
b=b>>1;
}
return res;
}
快速幂推荐视频:快速幂都能做什么?小小的算法也有大大的梦想_哔哩哔哩_bilibili
代码:
#include<bits/stdc++.h>
using namespace std;
long long int power(long long int a,long long int b,long long int mod){
long long int res=1;
while(b){
if(b&1){
res=(res*a)%mod;
}
a=(a*a)%mod;
b=b>>1;
}
return res;
}
int main(){
long long int n,m,k,x;
cin>>n>>m>>k>>x;
cout<< (x+m*power(10,k,n))%n;
return 0;
}
开始转成Python(orz):
import os
import sys
def power(a:int,b:int,mod:int) -> int:
res=1
while b:
if b&1:
res=(res*a)%mod
a=(a*a)%mod
b=b>>1
return res
n,m,k,x=map(int,input().split())
ans=(x+m*power(10,k,n))%n
print(ans)