【描述】
有n个人围成一圈,顺序排号,从第一个人开始报数(从1~3报数),凡报到3的人退出圈子,问最后留下的人原来排在第几号。
【C语言】
#include<stdio.h>
int main() {
int num[50];
int *p;
int i, k, m, n;
scanf("%d", &n);
p = num;
for (i = 0; i < n; i++)
*(p + i) = i + 1;
i = 0;
k = 0;
m = 0;
while (m < n - 1) {
if (*(p + i) != 0)
k++;
if (k == 3) {
*(p + i) = 0;
k = 0;
m++;
}
i++;
if (i == n)
i = 0;
}
while (*p == 0)
p++;
printf("%d", *p);
return 0;
}