第一题略
第二题
#include<stdio.h> int main() { int a1,a2,a3,b1,b3,b2,c1,c2,c3,n,sum,d1,d2,d3,i; scanf("%d\n",&n); for(i=0;i<n;i++) { scanf("%d%d%d%d%d%d",&a1,&a2,&a3,&b1,&b2,&b3); c1=(a1+b1)*60*60; c2=(a2+b2)*60; c3=(a3+b3); sum=c1+c2+c3; d1=sum/3600; d2=(sum-d1*60*60)/60; d3=sum%60; printf("%d %d %d\n",d1,d2,d3); } }
第三题题解
#include<stdio.h> int main() { int a,b,n; while(scanf("%d%d",&a,&b)!=EOF&&(a||b)) { int n=a; while(b>0&&a>=b) { n+=a/b; a=a/b+a%b; } printf("%d\n",n); } }
第四题题解
#include<stdio.h> #include<math.h> char a[100], b[100]; int main(){ int number; int c = 0; while(scanf("%d", &number)!=EOF) { scanf("%s%s", a, b); for (int i = 0; i < number; ++i){ int tmp = fabs(a[i] - b[i]); if (tmp > 5) c += (10 - tmp); else c += tmp; } printf("%d\n", c); c = 0; } return 0; }
第五题题解
#include<iostream> #include<cstring> #include<cstdio> using namespace std; char a[165]; int main() { int T; while(cin >> T) { while(T--) { cin >> a; int len = strlen(a); int flag = false; int last = 0; int sum = 0; for(int i = 0; i < len; i++) { if(a[i] == 'A' || a[i] == 'a') { flag = true; last++; sum += last; } else { flag = false; last = 0; } } cout << sum << endl; } } return 0; }
第七题题解
#include<stdio.h> int main() { double a[10000]; int i,b; a[0]=0; a[1]=1; a[2]=2; for(i=3;i<1000;i++) { a[i]=a[i-1]+a[i-2]; } while(scanf("%d",&b)!=EOF) { printf("%.lf\n",a[b]); } }
第八题题解
#include<stdio.h> #include<math.h> int sushu(int n) { int i; for(i=2;i<=sqrt(n);i++) if(n%i==0) return 0; return 1; } int main() { int n; while(scanf("%d",&n)!=EOF) { for(;;n--) if(sushu(n)) break; printf("%d\n",n); } }
新生赛第九题
#include<stdio.h> int main() { int i,a,max=0,min=100,s; char l[100]={0},op; gets(l); { for(i=0;;i=i+2) { if(l[i]=='=') break; else {if(l[i]==43||l[i]==45||l[i]==42||l[i]==37||l[i]==47) op=l[i]; else { if(l[i+2]==44) {a=(l[i]-48)*10+l[i+1]-48;i++;} else a=l[i]-48; if(a>=max) {max=a;} if(a<=min) {min=a;} } } } switch(op) {case 43:s=max+min; printf("%d+%d=%d\n",max,min,s); break; case 45:s=max-min; printf("%d-%d=%d\n",max,min,s); break; case 42:s=max*min;printf("%d*%d=%d\n",max,min,s); break; case 37:{if(min==0) {printf("Error!\n"); break;} else {s=max%min; printf("%d%%%d=%d\n",max,min,s); break;}} case 47:{if(min==0) { printf("Error!\n"); break;}else{s=max/min; printf("%d/%d=%d\n",max,min,s); break;}}} } }
新生赛第十题
#include<stdio.h> char str[1010]; int a[100000]; void qsort(int a[],int l,int r) { int x=a[l],i=l,j=r; if(l>=r) return; while(i<j) { while(i<j&&a[j]>=x)j--; a[i]=a[j]; while(i<j&&a[i]<=x)i++; a[j]=a[i]; } a[i]=x; qsort(a,l,i-1); qsort(a,i+1,r); } int main() { int k,i,sum; while(~scanf("%s",str)) { k=0;i=0; while(str[i]!='\0') { sum=0; if(str[i]=='6') { i++; continue; } while(str[i]!='6'&&str[i]!='\0') { sum=sum*10+str[i]-'0'; i++; } a[k]=sum; k++; } qsort(a,0,k-1); for(i=0;i<k-1;i++) { printf("%d ",a[i]); } printf("%d\n",a[i]); } return 0; }
新生赛第十一题
#include<stdio.h> int main() { int n,m,i,j,a[100][100],s,t,q,sum;double b[6],c[51]; while(scanf("%d %d",&n,&m)!=EOF&&n&&m) { sum=0;q=0;b[5]=0;c[50]=0; for(i=0;i<n;i++)//学生数 n { for(j=0;j<m;j++)//科目 m { scanf("%d",&a[i][j]); } } for(i=0;i<n;i++) { for(j=0;j<m;j++) { t+=a[i][j]; };c[i]=t;t=0;//某学生m科目总分 } for(i=0;i<n-1;i++) { printf("%.2lf ",c[i]/m); } printf("%.2lf",c[n-1]/m); printf("\n"); for(j=0;j<m;j++) { for(i=0;i<n;i++) { s+=a[i][j]; };b[j]=s;s=0;//某科目n学生总分 } for(j=0;j<m-1;j++) { printf("%.2lf ",b[j]/n); } printf("%.2lf",b[m-1]/n); printf("\n"); for(i=0;i<n;i++) { for(j=0;j<m;j++) { if(a[i][j]>=(b[j]/n)) q++; };if(q==m) sum++;q=0; }printf("%d\n\n",sum); }return 0; }
新生赛第十二题
#include<iostream> #include<cstring> #define maxn 100 using namespace std; int n,m,sum; char mapp[maxn][maxn]; int visit[maxn][maxn]; int dir[8][2]={{0,1},{0,-1},{1,0},{-1,0},{1,1},{-1,1},{1,-1},{-1,-1}}; void input() { for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { cin>>mapp[i][j]; } } } void dfs(int x,int y) { visit[x][y]=1; for(int i=0;i<8;i++) { int xx=x+dir[i][0]; int yy=y+dir[i][1]; if(xx<0||xx>=n||y<0||yy>=m||visit[xx][yy]||mapp[xx][yy]=='*') continue; dfs(xx,yy); } } int main() { while(cin>>n>>m) { if(!n&&!m) break; input(); sum=0; memset(visit,0,sizeof(visit)); for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { if(mapp[i][j]=='@'&&!visit[i][j]) { sum++; dfs(i,j); } } } cout<<sum<<endl; } return 0; }