题目描述
有n人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。
输入描述
初始人数n
输出描述
最后一人的初始编号
样例输入
3
样例输出
2
示例代码:
#include <iostream>
using namespace std;
int main(){
int i,n,num,all;
cin>>n;
int arr[n];
all=n;
num=0;
for(i=0;i<n;i++)
arr[i]=1;
while(all!=1){
for(i=0;i<n;i++){
if(arr[i]!=0) num++;
if(num==3 && arr[i]!=0){
arr[i]=0;
num=0;
all--;
}
}
}
for(i=0;i<n;i++)
if(arr[i]!=0)
cout<<i+1;//编号已应该从1开始的
return 0;
}