题解(可复制)(求赞)
2026-02-02 13:27:20
发布于:湖南
2阅读
0回复
0点赞
思路
此题根据题意模拟即可。
由于是 n 个人在转圈,每个人每次前进 m 个单位,走 10的K次方1
次。
显然,每个人移动过 n 个单位后回到起点,相当于没运动,因此我们可以直接计算初始位置 x 加上 10 的k次方乘以m,再对一圈的长度 n 取模即可求出答案。
注意事项
计算 10 的k次方
时数据较大,要用快速幂。
编号从 0 开始。
参考代码
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
LL ksm(LL a, LL b, LL p)
{
LL ans = 1;
while (b)
{
if (b & 1) ans = ans * a % p;
a = a * a % p;
b >>= 1;
}
return ans;
}
int main()
{
int n, m, k, x;
cin >> n >> m >> k >> x;
cout << (x % n + m % n * ksm(10, k, n) % n) % n << endl;
return 0;
}
这里空空如也






有帮助,赞一个