1.试题编号: 201312-1
试题名称: 出现次数最多的数
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int main(){
int n,i,max=0,t;
cin>>n;
int a[n+5],b[10010];
memset(b,0,sizeof(b));
for(i=0;i<n;i++){
cin>>a[i];
b[a[i]]++;
}
for(i=0;i<10010;i++){
if(b[i]>max){
t=i;
max=b[i];
}
}
cout<<t;
return 0;
}
2.试题编号: 201312-2
试题名称: ISBN号码
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int main(){
string a;
int i,sum,m,y;
cin>>a;
sum=(a[0]-'0')*1+(a[2]-'0')*2+(a[3]-'0')*3+(a[4]-'0')*4+(a[6]-'0')*5+(a[7]-'0')*6+
(a[8]-'0')*7+(a[9]-'0')*8+(a[10]-'0')*9;
y=sum%11;
if((a[12]==('0'+y))||((a[12]=='X')&&(y==10))){
cout<<"Right";
}
else{
for(i=0;i<=11;i++){
cout<<a[i];
}
if(y==10){
cout<<'X';
}
else{
cout<<y;
}
}
return 0;
}
3.试题编号: 201403-1
试题名称: 相反数
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int main(){
int n,i,sum=0;
cin>>n;
int a[n+5],b[1010];
memset(b,0,sizeof(b));
for(i=0;i<n;i++){
cin>>a[i];
if(b[abs(a[i])]==0){
b[abs(a[i])]=a[i];
}
else{
if(a[i]==(-b[abs(a[i])])){
sum++;
}
}
}
cout<<sum;
return 0;
}
试题编号: 201403-2
试题名称: 窗口
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
struct point{
int num;
int x1;
int y1;
int x2;
int y2;
};
struct click{
int x;
int y;
};
int main(){
int N,M,i,j,k;
cin>>N>>M;
point p[N+2];
click c[M+2];
for(i=0;i<N;i++){
p[i].num=i+1;
cin>>p[i].x1>>p[i].y1>>p[i].x2>>p[i].y2;
}
for(i=0;i<M;i++){
cin>>c[i].x>>c[i].y;
}
for(i=0;i<M;i++){
for(j=N-1;j>=0;j--){
if((c[i].x>=p[j].x1)&&(c[i].x<=p[j].x2)&&(c[i].y>=p[j].y1)&&(c[i].y<=p[j].y2)){
cout<<p[j].num<<endl;
point temp=p[j]; //第一次80,这里应该先移动,最后赋值。
for(k=j;k<N-1;k++){
p[k]=p[k+1];
}
p[N-1]=temp;
break;
}
}
if(j<0){
cout<<"IGNORED"<<endl;
}
}
return 0;
}
试题编号: 201409-1
试题名称: 相邻数对
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int main(){
int n,i,sum=0;
cin>>n;
int a[n+5];
for(i=0;i<n;i++){
cin>>a[i];
}
sort(a,a+n);
for(i=0;i<n-1;i++){
if(a[i+1]-a[i]==1){
sum++;
}
}
cout<<sum;
return 0;
}
试题编号: 201409-2
试题名称: 画图
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
struct point{
int x1;
int y1;
int x2;
int y2;
};
int main(){
int n,i,sum=0;
cin>>n;
point p[n+2];
int a[110][110];
for(int i=0;i<110;i++){
for(int j=0;j<110;j++){
a[i][j]=0;
}
}
for(i=0;i<n;i++){
cin>>p[i].x1>>p[i].y1>>p[i].x2>>p[i].y2;
for(int j=109-p[i].y1;j>109-p[i].y2;j--){
for(int k=p[i].x2-1;k>=p[i].x1;k--){
a[j][k]=1;
}
}
}
for(int i=0;i<110;i++){
for(int j=0;j<110;j++){
if(a[i][j]==1){
sum++;
}
}
}
cout<<sum;
return 0;
}
试题编号: 201412-1
试题名称: 门禁系统
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int main(){
int n,i;
cin>>n;
int a[n+2],b[1002],c[n+2];
memset(b,0,sizeof(b));
for(i=0;i<n;i++){
cin>>a[i];
b[a[i]]++;
c[i]=b[a[i]];
}
for(i=0;i<n;i++){
cout<<c[i]<<" ";
}
return 0;
}
试题编号: 201412-2
试题名称: Z字形扫描
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int main(){
int n,i,j;
cin>>n;
int a[550][550];
for(i=0;i<n;i++){
for(j=0;j<n;j++){
cin>>a[i][j];
}
}
//上三角
for(i=0;i<n;i++){
if(i%2==1){
for(int j=0;j<=i;j++){
cout<<a[j][i-j]<<" ";
}
}
else{
for(int j=i;j>=0;j--){
cout<<a[j][i-j]<<" ";
}
}
}
//下三角
for(i=n-1;i>0;i--){
if(i%2==1){
for(int j=n-1;j>=n-i;j--){
cout<<a[j][2*n-j-1-i]<<" ";
}
}
else{
for(int j=n-i;j<n;j++){
cout<<a[j][2*n-j-1-i]<<" ";
}
}
}
return 0;
}
试题编号: 201903-1
试题名称: 小中大
//错的原因,考虑错了四舍五入,负数和正负的四舍五入没有考虑,
先将两个数转化为double类型,再进行“/”除法。至于要规定输出保留多少位小数,则用cout<<fixed<<setprecision(2)<<……;其中2表示保留多少位小数(2表示两位)。同时要注意seprecision函数的使用要搭配头文件。
#include<iostream>
#include<cstring>
#include<iomanip>
#include<algorithm>
using namespace std;
int main(){
int n,i;
cin>>n;
int a[n+5];
int b[3];
for(i=0;i<n;i++){
cin>>a[i];
}
b[0]=a[0];
b[2]=a[n-1];
//大
if(b[2]>=b[0]){
cout<<b[2]<<" ";
}
else{
cout<<b[0]<<" ";
}
//中
if(n%2==0){
if(((a[n/2]+a[n/2-1])%2)!=0){
double c=a[n/2];
double d=a[n/2-1];
cout<<fixed<<setprecision(1)<<(c+d)/2<<" ";
}
else{
b[1]=((a[n/2]+a[n/2-1]))/2;
cout<<b[1]<<" ";
}
}
else{
b[1]=a[(n-1)/2];
cout<<b[1]<<" ";
}
//小
if(b[2]<=b[0]){
cout<<b[2];
}
else{
cout<<b[0];
}
return 0;
}
10.试题编号: 201903-2
试题名称: 二十四点
时间限制: 1.0s
内存限制: 512.0MB
#include<iostream>
#include <bitset>
#include<cstring>
#include<string>
#include<sstream>
#include<algorithm>
using namespace std;
int com(char op,int a,int b){
if(op=='+'){
return a+b;
}
else if(op=='-'){
return a-b;
}
else if(op=='x'){
return a*b;
}
else if(op=='/'){
return a/b;
}
}
int lx(int a,char x,int b,char y,int c,char z,int d){
if((y=='+'||y=='-')&&(z=='+'||z=='-')){//4*2*2=16
return com(z,com(y,com(x,a,b),c),d);
}
else if((x=='x'||x=='/')&&(y=='x'||y=='/')&&(z=='x'||z=='/')){//2*2*2=8
return com(z,com(y,com(x,a,b),c),d);
}
else if((x=='x'||x=='/')&&(y=='x'||y=='/')&&(z=='+'||z=='-')){//2*2*2=8
return com(z,com(y,com(x,a,b),c),d);
}
else if((x=='x'||x=='/')&&(y=='+'||y=='-')&&(z=='x'||z=='/')){//2*2*2=8
return com(y,com(x,a,b),com(z,c,d));
}
else if((x=='+'||x=='-')&&(y=='x'||y=='/')&&(z=='x'||z=='/')){//2*2*2=8
return com(x,a,com(z,com(y,b,c),d));
}
else if((x=='+'||x=='-')&&(y=='x'||y=='/')&&(z=='+'||z=='-')){//2*2*2=8
return com(z,com(x,a,com(y,b,c)),d);
}
else if((x=='+'||x=='-')&&(y=='+'||y=='-')&&(z=='x'||z=='/')){//2*2*2=8
return com(y,com(x,a,b),com(z,c,d));
}
}
int main(){
int n,a,b,c,d,i,t;
char x,y,z;
cin>>n;
string s;
for(i=0;i<n;i++){
cin>>s;
a=s[0]-'0';
b=s[2]-'0';
c=s[4]-'0';
d=s[6]-'0';
x=s[1];
y=s[3];
z=s[5];
t=lx(a,x,b,y,c,z,d);
if(t==24){
cout<<"Yes"<<endl;
}
else{
cout<<"No"<<endl;
}
}
return 0;
}
试题编号: 201503-1
试题名称: 图像旋转
#include<iostream>
#include<algorithm>
using namespace std;
int a[1001][1001];//定义在main里面会出错
int main(){
int n,m,i,j;
cin>>n>>m;
for(i=0;i<n;i++){
for(j=0;j<m;j++){
cin>>a[i][j];
}
}
for(j=m-1;j>=0;j--){
for(i=0;i<n;i++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
12
试题编号: 201503-2
试题名称: 数字排序
#include<iostream>
#include<algorithm>
using namespace std;
struct num{
int x;
int count;
};
bool com(num a,num b){
if(a.count>b.count){
return true;
}
else if(a.count==b.count){
if(a.x<b.x){
return true;
}
else{
return false;
}
}
else{
return false;
}
}
num a[1001];
int main(){
int n,i,p;
cin>>n;
for(i=0;i<1001;i++){
a[i].x=i;
a[i].count=0;
}
for(i=0;i<n;i++){
cin>>p;
a[p].count++;
}
sort(a,a+1001,com);
for(i=0;i<n;i++){
if((a[i].x!=0)&&(a[i].count!=0)){
cout<<a[i].x<<" "<<a[i].count<<endl;
}
}
return 0;
}
13
试题编号: 201509-1
试题名称: 数列分段
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
int n,i,count=1,p,a;
cin>>n;
cin>>p;
for(i=1;i<n;i++){
cin>>a;
if(a!=p){
p=a;
count++;
}
}
cout<<count;
return 0;
}
14
试题编号: 201509-2
试题名称: 日期计算
#include<iostream>
#include<algorithm>
using namespace std;
bool pd(int y){
if(((y%4==0)&&(y%100!=0))||(y%400==0)){
return 1;
}
else{
return 0;
}
}
int main(){
int y,d,i,month,day;
cin>>y>>d;
int p[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int r[12]={31,29,31,30,31,30,31,31,30,31,30,31};
if(pd(y)==1){
for(i=0;i<12;i++){
if(d<=r[i]){
month=i+1;
day=d;
break;
}
else{
d=d-r[i];
}
}
}
else{
for(i=0;i<12;i++){
if(d<=p[i]){
month=i+1;
day=d;
break;
}
else{
d=d-p[i];
}
}
}
cout<<month<<endl<<day;
return 0;
}
15
试题编号: 201512-1
试题名称: 数位之和
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
string s;
int n,i,sum=0;
cin>>s;
n=s.length();
for(i=0;i<n;i++){
sum=sum+s[i]-'0';
}
cout<<sum;
return 0;
}
16
试题编号: 201512-2
试题名称: 消除类游戏
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
int n,m,i,j,p,count,k;
int a[31][31],b[31][31];
cin>>n>>m;
for(i=0;i<n;i++){
for(j=0;j<m;j++){
cin>>a[i][j];
b[i][j]=a[i][j];
}
}
for(i=0;i<n;i++){//行
p=a[i][0];
count=1;
for(j=1;j<m;j++){
while(a[i][j]==p){
count++;
j++;
}
if(count>=3){
for(k=j-1;k>=j-count;k--){
a[i][k]=0;
}
count=1;
p=a[i][j];
}
else{
count=1;
p=a[i][j];
}
}
}
for(j=0;j<m;j++){//列
p=b[0][j];
count=1;
for(i=1;i<n;i++){
while(b[i][j]==p){
count++;
i++;
}
if(count>=3){
for(k=i-1;k>=i-count;k--){
b[k][j]=0;
}
count=1;
p=b[i][j];
}
else{
count=1;
p=b[i][j];
}
}
}
for(i=0;i<n;i++){
for(j=0;j<m;j++){
if((a[i][j]==0)||(b[i][j]==0)){
cout<<0<<" ";
}
else{
cout<<a[i][j]<<" ";
}
}
cout<<endl;
}
return 0;
}
17
试题编号: 201604-1
试题名称: 折点计数
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
int n,i,count=0;
int a[1001];
cin>>n;
for(i=0;i<n;i++){
cin>>a[i];
}
if(n<=2){
cout<<0;
}
else{
for(i=1;i<n-1;i++){
if(((a[i]-a[i-1])*(a[i]-a[i+1]))>0){
count++;
}
}
cout<<count;
}
return 0;
}
18
试题编号: 201609-1
试题名称: 最大波动
#include<iostream>
#include<map>
#include<cstring>
#include<algorithm>
using namespace std;
int main(){
int n,i,max=-1,c;
cin>>n;
int a[n+5];
for(i=0;i<n;i++){
cin>>a[i];
}
for(i=1;i<n;i++){
c=abs(a[i]-a[i-1]);
if(c>max){
max=c;
}
}
cout<<max;
return 0;
}