即日起在codingBlog上分享您的技术经验即可获得积分,积分可兑换现金哦。

POJ – 3750

编程语言 Code_Diary 11℃ 0评论
有N个小孩围成一圈,给他们从1开始依次编号,现指定从第W个开始报数,报到第S个时,该小孩出列,然后从下一个小孩开始报数,仍是报到S个出列,如此重复下去,直到所有的小孩都出列(总人数不足S个时将循环报数),求小孩出列的顺序。
Input
第一行输入小孩的人数N(N<=64) 


接下来每行输入一个小孩的名字(人名不超过15个字符) 


最后一行输入W,S (W < N),用逗号","间隔
Output
按人名输出小孩按顺序出列的顺序,每行输出一个人名
Sample Input
5
Xiaoming
Xiaohua
Xiaowang
Zhangsan
Lisi
2,3
Sample Output
Zhangsan
Xiaohua
Xiaoming
Xiaowang
Lisi
#include
#include
#include
using namespace std;
int main()
{
 int n, w, s, f[70] = {0},time = 0, sum = 0, i;
 char name[70][20] = {"^"};
 scanf("%d", &n);
 for(i = 1; i <= n; ++i)
 {
  scanf("%s", &name[i]);
 }
 scanf("%d,%d", &w, &s);
 i = w;
 while(sum < n)
 {
  if(i > n)
   i = 1;
  if(f[i] == 0)
   ++time;
  if(time == s)
  {
   ++sum;
   time = 0;
   cout << name[i] << endl;
   f[i] = 1;
  }
  
  ++i;
 }
 return 0;
}


转载请注明:CodingBlog » POJ – 3750

喜欢 (0)or分享 (0)
发表我的评论
取消评论

*

表情