据江湖传闻,2014年计算机机试分为了上午、下午两批。
先来看上午的题目。
A.众数-计算机一2014
题目地址:A.众数-计算机一2014
直接统计就可以。
AC代码:
#include<iostream>
#include<cstdio>
using namespace std;
int a[105];
int main()
{
int tes;
int n,i;
while(~scanf("%d",&tes))
{
while(tes--)
{
scanf("%d",&n);
for(i=0; i<n; i++)
scanf("%d",&a[i]);
int cnt=1; //记录出现的次数
int res,ans=0;
for(i=1; i<n; i++)
{
if(a[i]!=a[i-1])
{
if(cnt>ans)
{
ans=cnt;
res=a[i-1];
}
cnt=1;
}
else
cnt++;
}
if(cnt>ans) //最后一个数还没推断
{
ans=cnt;
res=a[i-1];
}
printf("%d
",res);
}
}
return 0;
}
/*
2
4
1 1 1 2
5
1 1 2 2 3
*/
B. 旋转图像-计算机一2014
题目地址:B. 旋转图像-计算机一2014
解题思路:
我们能够简化思路,写一个旋转90度的函数。假设选择180度则运行两次,270度。则运行三次。。
PS:记得交换m,n。
AC代码:
#include<iostream>
#include<cstdio>
using namespace std;
char a[55][55];
char b[55][55];
int m,n;
void rotate()
{
int i,j;
for(i=0; i<m; i++) //顺时针旋转90度后保存到b数组里
{
for(j=0; j<n; j++)
b[j][m-1-i]=a[i][j];
}
for(i=0; i<n; i++) //保存回a数组
{
for(j=0; j<m; j++)
a[i][j]=b[i][j];
a[i][j]='