由于n个人围成一圈,所以可以想到要取模运算,有周期性。
按照题目要求可以得到公式 a n s = ( x + m ∗ 1 0 k ) m o d 10 ans = (x + m *10^k)mod10 ans=(x+m∗10k)mod10
但题目给的k过大,超出了数据范围,所以用快速幂即可。
快速幂也有二分的特性,复杂度是 O ( l o g b ) O(logb) O(logb)
import java.util.Scanner;
public class Main {
static long n;
static long pow(long a, long b) {
long sum = 1;
while(b > 0) {
if((b & 1) == 1) {
sum = a % n * a % n;
}
b >>= 1;
a = a % n * a % n;
}
return sum;
}
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
n = cin.nextLong();
long m = cin.nextLong();
long k = cin.nextLong();
long x = cin.nextLong();
System.out.println((x + m * pow(10, k) % n) % n);
}
}