Hzu挑战自我


私信TA

用户名:gxhzxyjsj

访问量:98836

签 名:

2024终究会过去,期待2025!

等  级
排  名 8
经  验 27865
参赛次数 67
文章发表 157
年  龄 0
在职情况 教师
学  校 贺州学院
专  业 软件工程

  自我简介:

弱鸡一个,继续努力!

解题思路:用C++的stl中的vector可以方便地解决,因为出圈要循环多次,所以用两个vector实现。


参考代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	vector <int> myv;
	vector <int>::iterator it;
	int n,i;
	while(cin>>n)
	{
		myv.clear(); 
		for(i=1;i<=n;i++)
		{
			if(i%2==0)
				cout<<i<<" ";
			else
				myv.insert(myv.end(),i);	
		}
		vector <int> myv2;	
		int count=0,k=0;	
		while(1)
		{			
			count=k=0;
			myv2.clear(); 
			for(it=myv.begin();it!=myv.end();it++)
			{
				count++;
				if(count%2==0)
					cout<<*it<<" ";
				else
				{
					myv2.insert(myv2.end(),*it);
					k++;					
				} 					
			}
			if(k==2) 
			{
				cout<<endl;
				for(it=myv2.begin();it!=myv2.end();it++)
					cout<<*it<<" ";
				cout<<endl; 
				break; 
			}
			myv.clear();
			for(it=myv2.begin();it!=myv2.end();it++)
				myv.insert(myv.end(),*it);
		}		
	}	 
    return 0;
}
 

0.0分

3 人评分

  评论区

  • «
  • »