#include <stdio.h>
void main() {
int a[1000], n, t, i, c;
scanf("%d", &n);
/*初始化人数*/
for (i = 0; i < n; i++) {
a[i] = i + 1;
}
/*初始化变量*/
t = n;
i = 0;
c = 0;
while (n > 1) {
/* 退圈的不管 */
if (a[i] != 0)
c++;
/* 数到三退圈 */
if (c == 3) {
a[i] = 0;
c = 0;
n--;
}
/* 下个人准备 */
i++;
/* 轮完一圈了 */
if (i == t)
i = 0;
}
for (i = 0; i < t; i++) {
if (a[i] != 0) {
printf("%d", a[i]);
}
}
}
报数问题:有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
猜你喜欢
转载自blog.csdn.net/qq_38490457/article/details/104828517
今日推荐
周排行