文章
1
粉丝
0
获赞
0
访问
96
#include "stdio.h"
#include "stdlib.h"
int main() {
int n, k;
scanf("%d %d", &n, &k);
int flag1 = 0;//用于数k
int flag2 = 0;//用于数出列了几个
int *arr = calloc(n, sizeof(int)); // 自动初始化为0
int i = 0;
while (flag2 < n - 1) { // 循环到剩最后一人
if (arr[i] == 0) {
flag1++;
if (flag1 == k) {
arr[i] = 1; // 标记出圈
flag1 = 0; // 重置计数器
flag2++; // 出圈人数+1
}
}
i = (i + 1) % n; // 环形遍历
}
// 找到最后未出圈的人
for (i = 0; i < n; i++) {
if (arr[i] == 0) {
printf("%d", i + 1); // 输出实际编号
break;
}
}
return 0;
}
登录后发布评论
暂无评论,来抢沙发