据江湖传闻,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]='