2021 CCF 非专业级别软件能力认证第一轮(CSP-J1)入门级C++语言试题 (最后两题代码)

最近不是要CSP考试了吗,前段时间一直在准备,没时间发文章,所以停更了一段时间,在此给大家郑重道歉:对不起!!!(超大声)(鞠躬)

1.

有n个人围成一个圈,依次标号0到n-1。从0号开始,依次0,1,0,1... 交替报数,报到一的人离开,直至圈中剩最后一个人。求最后剩下的人的编号。

#include<bits/stdc++.h>
using namespace std;
int func(int);
int a[10086];
int b[10086];
int n;
int main()
{
	bool t=true;
	cin>>n;
	for(int i=0;i<n;i++)
	{
		b[i]=i;
	}
	while(true)
	{
		if(n<=1)
		{
			cout<<b[0];
			return 0;
		}
		for(int i=0;i<n;i++)
		{
			if(t==true)
			{
				a[i]=0;
				t=false;
			}
			else
			{
				a[i]=1;
				t=true;
				func(i);
				n--;
				i--;
			}
		}
	}
	
	
	return 0;
}
int func(int k)
{
	for(int i=k;i<n;i++)
	{
		a[i]=a[i+1];
		b[i]=b[i+1];
	}
	return 0;
}

2.

平面上有n个关键点ÿ