题目链接
解题思路:水题,用vis表示是否被淘汰,用res遍历所有猴子,如果vis就ans++,否则下一个猴子。
AC代码:
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<string>
#include<map>
#include<stack>
using namespace std;
typedef long long ll;
int a[1005];
int main()
{
int n;
cin>>n;
int ans=1,res=1,t=n;
memset(a,0,sizeof(a));
while(t>1)
{
if(ans==3&&a[res]==0)
{
a[res]=1;
ans=1;
res=(res==n)?1:(res+1);
t--;
}else if(ans!=3&&a[res]==0)
{
ans++;
res=(res==n)?1:(res+1);
}else
{
res=(res==n)?1:(res+1);
}
}
for(int i=1;i<=n;i++)
{
if(a[i]==0)
{
printf("%d\n",i);
break;
}
}
}