文章

35

粉丝

134

获赞

55

访问

25.4k

头像
约瑟夫问题 题解:队列
P1585 兰州大学机试
发布于2024年1月16日 11:39
阅读数 900

#include <bits/stdc++.h>
using namespace std;
int main(){
	int n,m;
	cin>>n>>m;
	queue<int> q;
	for(int i=1;i<=n;i++){
		q.push(i);
	}
	int num=1;
	int cur;//当前出圈人
	while(true){
		cur=q.front();
		q.pop();
		if(num==m){
			num=1;//下一个报的数是1
			if(q.empty()){
				cout<<cur<<" ";
				break;
			}else{
				cout<<cur<<" ";
			}
		}else{
			num++;
			q.push(cur);
		}
	}
	return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发