jmu-ds-小孩報數問題
阿新 • • 發佈:2018-12-12
有N個小孩圍成一圈,給他們從1開始依次編號,現指定從第W個開始報數,報到第S個時,該小孩出列,然後從下一個小孩開始報數,仍是報到S個出列,如此重複下去,直到所有的小孩都出列(總人數不足S個時將迴圈報數),求小孩出列的順序。
輸入格式:
第一行輸入小孩的人數N(N<=64) 接下來每行輸入一個小孩的名字(人名不超過15個字元) 最後一行輸入W,S (W < N),用逗號”,”間隔
輸出格式:
按人名輸出小孩按順序出列的順序,每行輸出一個人名
輸入樣例:
5
Xiaoming
Xiaohua
Xiaowang
Zhangsan
Lisi
2,3
輸出樣例:
Zhangsan Xiaohua Xiaoming Xiaowang Lisi
#include <bits/stdc++.h>
using namespace std;
string name[65];
int a[65]={0};
int main()
{
int n,w,s;
cin>>n;
for(int i=0;i<n;i++)
cin>>name[i];
scanf("%d,%d",&w,&s);
int t=w-2;
for(int i=0;i<n;i++)
{
for(int j=0;j<s;j++)
{
t++;
if(t>=n)t%=n;
if(a[t]==1)j--;
}
cout<<name[t]<<endl;
a[t]=1;
}
}