2014年北理复试上机题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34898866/article/details/80869456

试题:https://blog.csdn.net/u014552756/article/details/55504934

1

#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <cmath>
#include <algorithm>
using namespace std;

const int maxn = 1005;
int a[maxn];
int ind = 0;
int n;

int main()
{
	int cnt = 0;  //记录队列里最多有多少个数 
	while(~scanf("%d", &n))
	{
		if(cnt==0)
		{
			cnt++;
			a[ind++]=n;
			cout<<"输入:"<<n<<"  输出:"<<n<<endl; 
		}
		else if(cnt==1)
		{
			if(a[0]==n)
			{
				cout<<"输入:"<<n<<"  输出:"<<n<<endl; 
			}
			else{
				cnt++;
				a[ind++]=n;
				cout<<"输入:"<<n<<"  输出:"<<a[1]<<","<<a[0]<<endl; 
			}
		 } 
		else if(cnt==2){
			if(a[0]==n||a[1]==n)
			{
				cout<<"输入:"<<n<<"  输出:"<<a[1]<<","<<a[0]<<endl; 
			}
			else {
				cnt++;
				a[ind++]=n;
				cout<<"输入:"<<n<<"  输出:"<<a[2]<<","<<a[1]<<","<<a[0]<<endl; 
			}
		}
		else{
			int l1 = (ind-1+maxn)%maxn;
			int l2 = (ind-2+maxn)%maxn;
			int l3 = (ind-3+maxn)%maxn;
			if(a[l1]==n||a[l2]==n||a[l3]==n)
			{
				cout<<"输入:"<<n<<"  输出:"<<a[l1]<<","<<a[l2]<<","<<a[l3]<<endl; 
			}
			else{
				
				a[ind]=n;
				cout<<"输入:"<<n<<"  输出:"<<a[ind]<<","<<a[l1]<<","<<a[l2]<<endl; 
				ind = (ind+1)%maxn;
			}
		}
	}
}

2

#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <cmath>
#include <algorithm>
using namespace std;

const int maxn = 1005;
int a[maxn];
int ind = 0;
int n;

int main()
{
	int cnt = 0;  //记录队列里最多有多少个数 
	while(~scanf("%d", &n))
	{
		if(cnt==0)
		{
			cnt++;
			a[ind++]=n;
			cout<<"输入:"<<n<<"  输出:"<<n<<endl; 
		}
		else if(cnt==1)
		{
			if(a[0]==n)
			{
				cout<<"输入:"<<n<<"  输出:"<<n<<endl; 
			}
			else{
				cnt++;
				a[ind++]=n;
				cout<<"输入:"<<n<<"  输出:"<<a[1]<<","<<a[0]<<endl; 
			}
		 } 
		else if(cnt==2){
			if(a[0]==n) 
			{
				swap(a[0], a[1]);
				cout<<"输入:"<<n<<"  输出:"<<a[1]<<","<<a[0]<<endl; 
			}
			else if(a[1]==n)
			{
				cout<<"输入:"<<n<<"  输出:"<<a[1]<<","<<a[0]<<endl; 
			}
			else {
				cnt++;
				a[ind++]=n;
				cout<<"输入:"<<n<<"  输出:"<<a[2]<<","<<a[1]<<","<<a[0]<<endl; 
			}
		}
		else{
			int l1 = (ind-1+maxn)%maxn;
			int l2 = (ind-2+maxn)%maxn;
			int l3 = (ind-3+maxn)%maxn;
			if(a[l1]==n)
			{
				cout<<"输入:"<<n<<"  输出:"<<a[l1]<<","<<a[l2]<<","<<a[l3]<<endl; 
			}
			else if(a[l2]==n)
			{
				swap(a[l1], a[l2]);
				cout<<"输入:"<<n<<"  输出:"<<a[l1]<<","<<a[l2]<<","<<a[l3]<<endl; 
			}
			else if(a[l3]==n)
			{
				swap(a[l1], a[l3]);
				cout<<"输入:"<<n<<"  输出:"<<a[l1]<<","<<a[l2]<<","<<a[l3]<<endl; 
			}
			else{
				
				a[ind]=n;
				cout<<"输入:"<<n<<"  输出:"<<a[ind]<<","<<a[l1]<<","<<a[l2]<<endl; 
				ind = (ind+1)%maxn;
			}
		}
	}
}

3

#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <cmath>
#include <algorithm>
using namespace std;

char s[110];

int main()
{
	while(gets(s))
	{
		int len = strlen(s);
		int ans = 0, cnt =0;
		for(int i=0;i<len;i++)
		{
			if(s[i]=='(')
			{
				cnt++;
				ans = max(ans, cnt);
			}
			else if(s[i]==')')
			{
				cnt--;
			}
		}
		cout<<"输入:"<<s<<endl;
		cout<<"输出:"<<ans<<endl; 
	}
}

猜你喜欢

转载自blog.csdn.net/qq_34898866/article/details/80869456