https://pintia.cn/problem-sets/1465599054939619328/problems/1465599627378229279
#include<bits/stdc++.h>
using namespace std;
int p[1010];
int main(){
int n;
cin>>n;
int res=n,num=0,ans=0;//剩余猴子的个数,当前记录的猴子的编号,三个猴子循环一次
memset(p,0,sizeof p);
while(res>1){
if(ans==3){
p[num]=1;//p值为1的猴子退出
ans=0;
res--;
}
num++;
if(num>n)num%=n;//如果当前猴子编号超出n,那就从前面重新累计筛选
if(p[num]==0) ans++;
}
for(int i=1;i<=n;i++){
if(p[i]==0){
cout<<i<<'\n';
return 0;
}
}
return 0;
}