想用队列实现,不是很对,求助!!
  • 板块P1145 约瑟夫
  • 楼主23Youth
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/10/21 14:44
  • 上次更新2024/10/21 18:05:09
查看原帖
想用队列实现,不是很对,求助!!
1264428
23Youth楼主2024/10/21 14:44
#include <bits/stdc++.h>
using namespace std;
int a[40];
int main()
{
	queue<int>q;
	int k=0;
	cin>>k;
	int n=k*2;
	for(int i=1;i<=k;i++)a[i]=1;
	for(int j=k+1;j<=n;j++)a[j]=2;
	int m=1;
	bool flg=true;
	while(flg==true)
	{
		int p=1;
		int cnt=0;
		for(int i=1;i<=n;i++)
		{
			q.push(a[i]);
		}
		while(!q.empty())
		{
			if(p==m)
			{
				p=1;
				if(q.front()==1)break;
				else 
				{
					q.pop();
					cnt++;
					if(cnt==k)
					{
						cout<<m;
						return 0;
						
					}
				}
			}
			else
			{
				q.push(q.front());
				q.pop();
				p++;
			}
			
		}
		m++;
	}
	return 0;
}
2024/10/21 14:44
加载中...