直接模拟就好,加一个标志数组表示此人是否被挑出
#include<cstdio>
#include<cstring>
using namespace std;
char kids[100][20];
bool flag[100]={false};
//找规律
int main()
{
int n,w,s;
scanf("%d",&n);
for(int i = 1; i<=n; ++i) scanf("%s",kids[i]);
strcpy(kids[0],kids[n]);
scanf("%d,%d",&w,&s);
int sum = 0,ans = 0;
for(int i = w;;++i)
{
int t = i%n;
if(!flag[t]) sum++;
if(sum == s)
{
printf("%s\n",kids[t]);
flag[t] = true;
sum = 0 ;
ans++;
}
if(ans==n) break;
}
return 0;
}
用数学公式推导出来更快,不过我有点懒,改天想想怎么推吧。
以上。