题目描述

输入

输出

样例输入

样例输出

源代码

①
#include<stdio.h>
int main()
{
int n, m, n1, i = 0, step;
scanf("%d %d", &n, &m);
int s[1000]={2};
for (int j = 0; j < n; j++)
{
s[j] = 0;
}
n1 = n;
while (n1 > 1)
{
step = m;
while (1)
{
i++;
if (i >= n)
{
i = 0;
}
if (s[i] == 0)
{
step--;
}
if (step <= 0)
{
break;
}
}
s[i] = 1;
n1--;
}
for (int k = 0; k < n; k++)
{
if (s[k] == 0)
{
printf("%d\n", k);
}
}
return 0;
}
②
#include <stdio.h>
#include <stdlib.h>
int main()
{
int m, n;
while (~scanf("%d %d", &n, &m))
{
int p = 0;
for (int i = 2; i <= n; i++)
{
p = (p + m) % i;
}
printf("%d\n", p + 1);
}
return 0;
}
关于这题



这篇博客介绍了两种不同的C++代码实现,用于解决‘消灭老鼠’的问题。第一种方法通过循环和计数来定位老鼠的位置,第二种方法则使用数学计算寻找答案。代码清晰地展示了算法逻辑,适合C++初学者和算法爱好者学习参考。
2102

被折叠的 条评论
为什么被折叠?



