文章

35

粉丝

134

获赞

55

访问

24.6k

头像
猴子报数 题解:队列
P1081 兰州大学/湖南大学机试题
发布于2024年1月16日 12:12
阅读数 723

#include <bits/stdc++.h>
using namespace std;
int main(){
	int n,s,m;
	while(cin>>n>>s>>m){
		if(n==0&&s==0&&m==0) break;
		queue<int> q;
		//确定初始报数顺序
		for(int i=0,j=s;i<n;i++){
			q.push(s++);
			if(s>n) s=1;
		}
		//报数过程
		int num=1;
		int cur;
		while(true){
			cur=q.front();
			q.pop();//出队
			if(num==m){
				num=1;//下一个报的数是1
				if(q.empty()){
					cout<<cur<<endl;
					break;
				}else{
					cout<<cur<<",";
				}
			}
			else{
				q.push(cur);
				num++;
			}
		}
	}
	return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发