C++STL解决约瑟夫环问题

#include 
#include 
using namespace std;

int main()
{
	int n;
	cin >> n;
	queue<int> q;
	for (int i = 1; i <= n; i++)
	{
		q.push(i);
	}
	int cur = 1;
	while(q.size() > 1)
	{
		int x = q.front();
		q.pop();
		if (cur == 3)
		{
			cur = 1;
		}
		else
		{
			q.push(x);
			cur++;
		}
	} 
	cout << q.front() << endl;
	return 0;
} 

你可能感兴趣的:(总有那么几天不想学习)