用STL队列求解约瑟夫环问题

【问题描述】

约瑟夫问题:n个人围成一圈,从第一个人开始报数,数到m的人出圈;再由下一个人开始报数,数到m的人出圈;…输出依次出圈的人的编号。n,m由键盘输入。

 

【程序代码】

#include 
using namespace std;

queue Q;
int cur=1;

int main() {
	int n,m;
	cin>>n>>m;
	for(int i=1; i<=n; i++) Q.push(i);

	while(!Q.empty()) {
		if(cur==m) {
			cout<

 

/*

in:

10 3

 

out:

3 6 9 2 7 1 8 5 10 4

*/

 

你可能感兴趣的:(信息学竞赛)