猴子选大王数组c语言
时间: 2023-12-03 16:39:24 浏览: 160
猴子选大王是一个经典的问题,可以用数组和循环来解决。具体思路如下:
1. 首先,我们需要定义一个数组来表示猴子们的编号,编号从1开始,依次递增。例如,如果有10只猴子,那么数组就是{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}。
2. 接下来,我们需要定义一个变量来表示当前轮到哪只猴子报数。假设第一轮从第一只猴子开始报数,那么初始值为1。
3. 然后,我们需要定义一个变量来表示当前报到几了。初始值为1。
4. 接下来,我们就可以开始模拟猴子选大王的过程了。具体步骤如下:
- 从当前猴子开始,依次报数,直到报到n为止。如果当前猴子的编号为数组的最后一个元素,则从数组的第一个元素开始报数。
- 报到n的猴子出局,从数组中删除。
- 如果数组中只剩下一只猴子,那么这只猴子就是大王。
5. 最后,我们输出大王的编号即可。
下面是一个示例代码,假设有10只猴子,每次报到第3只猴子出局:
```c
#include <stdio.h>
int main() {
int monkeys[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int n = 3;
int current = 0;
int count = 1;
int size = 10;
while (size > 1) {
if (count == n) {
// 当前猴子出局
for (int i = current; i < size - 1; i++) {
monkeys[i] = monkeys[i + 1];
}
size--;
count = 1; } else {
// 下一只猴子报数
count++;
current++;
if (current == size) {
current = 0;
}
}
}
printf("大王的编号是:%d\n", monkeys[0]);
return 0;
}
```
阅读全文