本文共 976 字,大约阅读时间需要 3 分钟。
为了解决这个问题,我们需要计算在10^k轮移动后,x号MM的位置。每一轮每个MM会移动m个位置,考虑到环形结构,我们需要使用模运算来高效计算位置。
#includeusing namespace std;long long quick_pow(long long x, long long y, long long n) { long long ans = 1; while (y) { if (y % 2 == 1) { ans = (ans * x) % n; } x = (x * x) % n; y /= 2; } return ans;}int main() { long long n, m, k, x; while (scanf("%lld%lld%lld%lld", &n, &m, &k, &x) != EOF) { long long pow10 = quick_pow(10, k, n); long long total_move = (m * pow10) % n; long long result = (x + total_move) % n; cout << result << '\n'; } return 0;}
quick_pow计算10^k mod n,使用快速幂算法来处理大数,确保计算高效。这种方法确保了在处理大数时的效率和正确性,适用于题目中的各种输入情况。
转载地址:http://csio.baihongyu.com/