#include<cstdio>
#include<iostream>
#include <cmath>
#include<string>
#include<algorithm>
#include<set>
#include<queue>
#include<iterator>
#include<cstring>
using namespace std;
int main()
{
printf("请输入人数:");
int n;
cin >> n;
int i, a[10000], m, *p, k;
p = a;
for(i=0; i<=n; i++){
*(p+i) = i+1;
}
i = 0; //i为每次循环时计数变量
k = 0; //k为按1,2,3,报数时的计数变量
m = 0; //m为退出人数
while(m < n-1)
{
if(*(p+i)!=0){
k++;
}
if(k == 3){
*(p+i) = 0; //对退出的人编号置为0
k = 0;
m++;
}
i++;
if(i == n){
i = 0; //报数到尾后,i恢复为0
}
}
while(*p == 0){
p++;
}
printf("最后留下的是原来的第 %d 号\n", *p);
return 0;
}
(指针)报数排除人,留下来的是原来的几号
最新推荐文章于 2022-12-20 19:46:14 发布