文章

35

粉丝

134

获赞

55

访问

25.4k

头像
约瑟夫问题的实现 题解:队列
P5104
发布于2024年1月16日 11:28
阅读数 718

#include <bits/stdc++.h>
using namespace std;
int main(){
	int n,k;
	cin>>n>>k;
	queue<int> c;
	for(int i=1;i<=n;i++){
		c.push(i);
	} 
	//报数过程
	int num = 1;
	int cur;
	while(true){
		cur = c.front();
		c.pop();//出队
		if(num==k){
			num=1;//下一个报的数是1
			if(c.empty()){
				cout<<cur;
				break;
			} 
		}
		else{
			num++;
			c.push(cur);//入队
		}
	} 
	return 0;

} 

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发