问题 1873 --报数(完善程序)

1873: 报数(完善程序)★★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 211  解决: 140
[提交][状态][命题人:]

题目描述

期中考试后,大家放松一下,玩个游戏。

n5<n<100)个人围成一圈(编号为0~n-1),从第0号的人开始123、…、k123、…报数,凡报到k1<k<5)的人出列,直到剩下最后一个人为止。问最后剩下的人的编号。

#include<iostream>
using namespace std;
int T,arr[105],n,k,s,t,i;
int main()
{
        cin>>T;
	while(_____(1)_____)
	{
		cin>>n>>k;
		for(i=0;i<n;i++)
			arr[i]=i;
		s=0,t=0,i=0;
		while(_____(2)______)
		{
			if(_____(3)_______)
			{
				t++;
				if(t==k)
				{
					s++;
					arr[i%n]=-1;
					______(4)_______;
				}
			}
			i++;
		}
		for(i=0;i<n;i++)
			if(arr[i]>=0)
			{
				_______(5)______;
				break;
			}
	} 
    return 0;
}

输入

1行是一个整数m0<m<100),表示游戏玩的次数;

后面有m组数,每组两个数nk,分别表示开始时的总人数和出列的号数。

输出

输出m行,每行输出每次游戏结束时最后剩下的人的编号。

样例输入
Copy
2
5 2
5 3
样例输出
Copy
2
3

提示

来源

 

[提交][状态]