一个学期来的ACM代码,一次过!

 

码虽然不怎么精彩,但都是自己一点一点写出来的~~~~ 

1000.A + B Problem

#include<stdio.h> int main() { int A,B,i; for(i=1;i<=9;i++) { scanf("%d%d",&A,&B); printf("%d/n",A+B); } return 0; }

 

1001.Sum Problem

#include<stdio.h> int main() { int n; while(scanf("%d",&n)!=EOF) { printf("%.f/n/n",(1+n)/2.0*n); } return 0; }

 

1002.A + B Problem II

#include<stdio.h> #include<string.h> int main() { char a[1001],b[1001],*p,*pa,*pb; int i,j,n,la,lb,flag; while(scanf("%d",&n)==1) { getchar(); pa=a;pb=b;flag=1; while(n--) { scanf("%s %s",pa,pb); printf("Case %d:/n",flag); flag++; printf("%s + %s = ",pa,pb); la=strlen(pa);lb=strlen(pb); if(la<lb) { p=pa;pa=pb;pb=p; la^=lb;lb^=la;la^=lb; } for(j=lb-1,i=la-1;j>=0;j--,i--) { *(pa+i)+=(*(pb+j)-'0'); } for(j=la-1;j>=0;j--) { if(*(pa+j)>'9') { if(j) *(pa+j-1)+=1; else printf("1"); *(pa+j)=*(pa+j)-'9'-1+'0'; } } puts(pa); if(n) printf("/n"); } } return 0; }

 

1003.max sum

#include<stdio.h> int main() { int sum,max,num,tcase,n,thiscase=1; int i,j,besti,bestj; scanf("%d",&tcase); while(tcase--) { sum=0; besti=1;bestj=1; scanf("%d",&n); for(i=1,j=1;i<=n;i++) { scanf("%d",&num); if(i==1) max=num; sum+=num; if(sum>max) { max=sum; bestj=j; besti=i; } if(sum<0) { sum=0; j=i+1; } } printf("Case %d:/n%d %d %d/n",thiscase,max,bestj,besti); if(tcase) printf("/n"); thiscase++; } return 0; }

 

1004.Let the Balloon Rise

#include<stdio.h> #include<string.h> int main() { char b[1000][16],c; int i,j,n,f,num[1000],max,*pm,*pn,*flag; pn=&n,pm=&max,flag=&f; while(scanf("%d",pn)==1&&*pn) { c=getchar(); for(i=0;i<*pn;i++) { gets(*(b+i)); } *pm=0; for(i=0;i<*pn;i++) { *(num+i)=0; for(j=0;j<*pn;j++) if(!strcmp(*(b+i),*(b+j))) (*(num+i))++; if(*pm<*(num+i)) { *pm=*(num+i); *flag=i; } } puts(*(b+*flag)); } return 0; }

 

1005.Number Sequence

#include<stdio.h> int main() { int f1,f2,f,a,b,n,*p1,*p2,*p,*pa,*pb,*pn; p1=&f1,p2=&f2,p=&f,pa=&a,pb=&b,pn=&n; while(scanf("%d %d %d",pa,pb,pn)==3&&(*pa||*pb||*pn)) { *p1=1;*p2=1;*pn%=1008; if(!*pn) *pn=1008; else if(*pn<3) *p=1; while(*pn>2) { *p=(*pa*(*p2)+*pb*(*p1))%7; *p1=*p2; *p2=*p; (*pn)--;//优先级! } printf("%d/n",*p); } return 0; }

 

1008.Elevator

#include<stdio.h> int main() { int s,n,t,x,*ps,*pn,*pt,*px; ps=&s,pn=&n,pt=&t,px=&x; while(scanf("%d",pn)==1&&*pn) { t=0;*ps=*pn*5; while((*pn)--) { scanf("%d",px); if(*px>t) *ps+=(*px-t)*6; else *ps+=(t-*px)*4; t=*px; } printf("%d/n",*ps); } return 0; }

 

1010.汉字统计

 

#include<stdio.h> int main() { int n,count; char x; scanf("%d",&n); getchar(); while(n--) { count=0; x=getchar(); while(x!='/n') { if(x<0) count++; x=getchar(); } printf("%d/n",count/2); } return 0; }

 

1011.进制转换

#include<stdio.h> #define N ('A'-10) #define M '0' int main() { int n,r,i; char c[33]; while(scanf("%d %d",&n,&r)==2) { i=0; if(n<0) { printf("-");n=-n; } while(n>r) { *(c+i)=n%r; if(*(c+i)>9) *(c+i)+=N; else *(c+i)+=M; n/=r; i++; } if(n>9) *(c+i)=n+N; else *(c+i)=n+M; i++; while(i--) { putchar(*(c+i)); } printf("/n"); } return 0; }

 

1012.u caculate e

#include<stdio.h> int main() { int i,n; double e=0,s; printf("n e/n"); printf("- -----------/n"); printf("0 1/n"); for(n=0;n<10;n++) { for(i=1,s=1;i<=n;i++) s*=1/(double)i; e+=s; if(n) if(n==1) printf("%d %.0lf/n",n,e); else if(n==2) printf("%d %.1lf/n",n,e); else printf("%d %.9lf/n",n,e); } return 0; }

 

1013. Digital Roots

#include<stdio.h> #include<string.h> int test_root(); int main() { int i,n,l,*pn,*pl; char m[1024]; pn=&n,pl=&l; while(scanf("%s",m)==1&&m[0]!='0') { *pl=strlen(m); for(i=0,*pn=0;i<*pl;i++) *pn+=*(m+i)-'0'; while(*pn>=10) *pn=test_root(pn); printf("%d/n",*pn); } return 0; } int test_root (int *p) { int s=0; while(*p) { s+=*p%10; *p/=10; } return s; }

 

1014.Uniform Generator

#include<stdio.h> int main() { int i,seed1,seed,step,mod; while(scanf("%d %d",&step,&mod)==2) { seed=1; for(i=0,seed1=0;seed!=0;i++) { seed=(seed1+step)%mod; seed1=seed; } if(i==mod) printf("%10d%10d Good Choice/n",step,mod); else printf("%10d%10d Bad Choice/n",step,mod); printf("/n"); } return 0; }

 

1017.A Mathematical Curiosity

#include<stdio.h> int main() { int t,n,m,c,i,j,s,*pt,*pn,*pm,*count,*ps; pn=&n,pm=&m,pt=&t,count=&c,ps=&s; scanf("%d",pt); while((*pt)--) { *ps=0; while(scanf("%d %d",pn,pm)==2&&(*pn||*pm)) { (*ps)++; *count=0; for(i=1;i<*pn;i++) for(j=i+1;j<*pn;j++) if((i*i+j*j+m)%(i*j)==0) (*count)++; printf("Case %d: %d/n",*ps,*count); } if(*pt) printf("/n"); } return 0; }

 

1019.Least Common Multiple

#include<stdio.h> __int64 lcm(); int main() { __int64 a,b,*pa,*pb; int ncase,m,*nc,*pm; nc=&ncase,pm=&m,pa=&a,pb=&b; scanf("%d",nc); while((*nc)--) { scanf("%d %I64d",pm,pa); (*pm)--; while((*pm)--) { scanf("%I64d",pb); if(*pa>*pb) *pa=lcm(pa,pb); else *pa=lcm(pb,pa); } printf("%I64d/n",*pa); } return 0; }

 

1021.Fibonacci Again

#include<stdio.h> int main() { int f,n; int *pn=&n,*pf=&f; while(scanf("%d",pn)==1) { *pf=(*pn+1)%8; if(*pf==3||*pf==7) printf("yes/n"); else printf("no/n"); } return 0; }

 

1032.The 3n+1 problem

#include<stdio.h> int main() { int a,b,temp,i,j,count,max; int *pa=&a,*pb=&b,*p=&temp; while(scanf("%d %d",pa,pb)==2) { printf("%d %d ",*pa,*pb); if(*pa>*pb) { p=pa;pa=pb;pb=p; } max=0; for(i=*pa;i<=*pb;i++) { count=1; for(j=i;j!=1;) { if(j%2) j=3*j+1; else j=j/2; count++; } if(max<count) { max=count; } } printf("%d/n",max); } return 0; }

 

1037.Keep on Truckin

#include<stdio.h> int main() { int a[3],w=168,*pw; pw=&w; scanf("%d %d %d",a,a+1,a+2); if(*pw<*a) { if(*pw<*(a+1)) { if(*pw<*(a+2)) printf("NO CRASH"); else printf("CRASH %d/n",*(a+2)); } else printf("CRASH %d/n",*(a+1)); } else printf("CRASH %d/n",*a); return 0; }

 

1040.As easy As A+B

#include<stdio.h> int main() { int n,num[1000],t,i,j,min,x; scanf("%d",&t); while(t--) { scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",num+i); for(i=0;i<n;i++) { min=*(num+i); x=i; for(j=i+1;j<n;j++) { if(min>*(num+j)) { min=*(num+j); x=j; } } if(i<n-1) printf("%d ",min); else printf("%d/n",min); *(num+x)=*(num+i); *(num+i)=min; } } return 0; }

 

1061.Rightmost Digit

#include<stdio.h> int rd(); int main() { int i,n,r,t,x,y; scanf("%d",&t); while(t--) { scanf("%d",&n); r=n%10; if(r==0||r==1||r==5||r==6) { printf("%d/n",r); } else if(r==9) if(n%2) printf("9/n"); else printf("1/n"); else { x=n%4; if(!x) x=4; for(i=1,y=r;i<x;i++) r=(r*y)%10; printf("%d/n",r); } } return 0; }

 

1062.Text Reverse

#include<stdio.h> #include<string.h> int main() { int t,i,c; char a[1000],b; scanf("%d",&t); b=getchar(); while(t--) { i=0; gets(a); while(*(a+i)!='/0') { while(*(a+i)==' ') { printf("%c",*(a+i)); i++; } while(*(a+i)!=' '&&*(a+i)!='/0') i++; for(c=i-1;*(a+c)!=' '&&c>-1;c--) printf("%c",*(a+c)); } printf("/n"); } return 0; }

 

1089.A+B for Input-Output Practice (I)

#include<stdio.h> int main() { int a,b; while(scanf("%d %d",&a,&b)==2) printf("%d/n",a+b); return 0; }

 

1090.A+B for Input-Output Practice (II)

#include<stdio.h> int main() { int a,b,t; scanf("%d",&t); while(t--) { scanf("%d %d",&a,&b); printf("%d/n",a+b); } return 0; }

 

1091.A+B for Input-Output Practice (I)

#include<stdio.h> int main() { int a,b,n; while(scanf("%d",&n)==1&&n) { b=0; while(n--) { scanf("%d",&a); b+=a; } printf("%d/n",b); } return 0; }

 

1092.A+B for Input-Output Practice (IV)

#include<stdio.h> int main() { int a,b,n; while(scanf("%d",&n)==1&&n) { b=0; while(n--) { scanf("%d",&a); b+=a; } printf("%d/n",b); } return 0; }

 

1093.A+B for Input-Output Practice (V)

#include<stdio.h> int main() { int a,b,n,t; scanf("%d",&t); while(t--) { scanf("%d",&n); b=0; while(n--) { scanf("%d",&a); b+=a; } printf("%d/n",b); } return 0; }

 

1094.A+B for Input-Output Practice (VI)

#include<stdio.h> int main() { int a,b,n; while(scanf("%d",&n)==1) { b=0; while(n--) { scanf("%d",&a); b+=a; } printf("%d/n",b); } return 0; }

 

1095.A+B for Input-Output Practice (VII)

#include<stdio.h> int main() { int a,b; while(scanf("%d %d",&a,&b)==2) printf("%d/n/n",a+b); return 0; }

 

1096.A+B for Input-Output Practice (VIII)

#include<stdio.h> int main() { int a,b,n,t; scanf("%d",&t); while(t--) { scanf("%d",&n); b=0; while(n--) { scanf("%d",&a); b+=a; } if(t) printf("%d/n/n",b); else printf("%d/n",b); } return 0; }

 

1097.A hard puzzle

#include<stdio.h> int main() { int i,n,m,r,x,y; while(scanf("%d %d",&n,&m)==2) { r=n%10; if(r==0||r==1||r==5||r==6) { printf("%d/n",r); } else if(r==9) if(m%2) printf("9/n"); else printf("1/n"); else { x=m%4; if(!x) x=4; for(i=1,y=r;i<x;i++) r=(r*y)%10; printf("%d/n",r); } } return 0; }

 

1238.substring

#include<stdio.h> #include<string.h> int match(); void born_sub(char *p,int ml,int ns) { int x=ml,i,flag=0; char *p1=p; for(;ml>0;ml--) { p=p1; for(i=0;i<x-ml+1;i++) { if(match(p,ml,ns)) { flag=1;break; } p++; } if(flag) break; } printf("%d/n",ml); } char str[100][101]; int match (char *p,int k,int ns) { char str1[101]; int i; memset(str1,'/0',k+1); memcpy(str1,p,k); for(i=0;i<ns;i++) { if(strstr(*(str+i),str1)==NULL) if(strstr(*(str+i),strrev(str1))==NULL) { return 0; } } return k; } int main() { int ncase,nstring; int n,flag,len,l; int *nc=&ncase,*ns=&nstring; scanf("%d",nc); while((*nc)--) { scanf("%d",ns); getchar(); n=*ns;len=101; while(n--) { gets(*(str+n)); if((l=strlen(*(str+n)))<len) { len=l; flag=n; } } born_sub(*(str+flag),len,*ns); } return 0; }

 

1239.Calling Extraterrestrial Intelligence Again

#include<stdio.h> void find_primer(int *p) { int i,j,count; *p=2;p++;*p=3;p++; for(i=4,count=2;i<50000;i++) { for(j=2;j<=i/2;j++) { if(i%j==0) break; else if(j==i/2) { *p=i;p++; } } } } int main() { int primer[5133]; int i,j,m,a,b,max,temp,bestp,bestq; find_primer(primer); while(scanf("%d %d %d",&m,&a,&b) && (m||a||b)) { i=0; while(*(primer+i)<=m/2 && i<5133) { i++; } max=4;bestp=0;bestq=0; for(;i>=0;i--) { for(j=i;j>=0;j--) { if((temp=*(primer+i)**(primer+j))<=m) if(max<temp) if(1.0**(primer+j)/(*(primer+i))>=1.0*a/b) { bestp=j;bestq=i;max=temp; } } } printf("%d %d/n",primer[bestp],primer[bestq]); } return 0; }

 

2000.ASCII码排序

#include<stdio.h> int main() { char a,b,c,d; while((a=getchar())!=EOF) { b=getchar(); c=getchar(); d=getchar(); if(a>b) { if(b>c) printf("%c %c %c/n",c,b,a); else c>a?printf("%c %c %c/n",b,a,c):printf("%c %c %c/n",b,c,a); } else { if(c>b) printf("%c %c %c/n",a,b,c); else c>a?printf("%c %c %c/n",a,c,b):printf("%c %c %c/n",c,a,b); } } return 0; }

 

2001.求两点间距离

#include<stdio.h> #include<math.h> int main() { double x1,y1,x2,y2; while(scanf("%lf %lf %lf %lf",&x1,&y1,&x2,&y2)==4) printf("%.2lf/n",hypot(fabs(x1-x2),fabs(y1-y2))); return 0; }

 

2002.计算球的体积

#include<stdio.h> #define PI 3.1415927 int main() { double r; while(scanf("%lf",&r)==1) printf("%.3lf/n",4/3.0*PI*r*r*r); return 0; }

 

2004.成绩转换

#include<stdio.h> int main(viod) { int a; while(scanf ("%d",&a)!=EOF) { while (a >100 || a<0) { printf ("Score is error!/n"); while(scanf ("%d",&a)!=EOF) { break; } } if (a >= 90) printf ("A/n"); else if (a >= 80) printf ("B/n"); else if (a >= 70) printf ("C/n"); else if (a >= 60) printf ("D/n"); else printf ("E/n"); } return 0; }

 

2005.第几天

#include<stdio.h> int main() { int y,m,d,n,i; int p_days[]={31,28,31,30,31,30,31,31,30,31,30,31}; int R_days[]={31,29,31,30,31,30,31,31,30,31,30,31}; while(scanf("%d/%d/%d",&y,&m,&d)!=EOF) { if(m==1) { n=0; } else { if((y%400==0)||(y%4==0 && y%100!=0)) { for(n=0,i=0;i<(m-1);i++) n=n+R_days[i]; } else { for(n=0,i=0;i<(m-1);i++) n=n+p_days[i]; } } n+=d; printf("%d/n",n); } return 0; }

 

2006.求奇数的积

#include<stdio.h> #include<stdlib.h> int main() { int i,n,s,x,t; for(;;) { scanf("%d",&n); for(i=0,s=1;i<n;i++) { scanf("%d",&x); if(x%2==0) continue; else s*=x; } if(t=getchar()=='/n') { printf("%d/n",s); continue; } else exit(-1); } return 0; }

 

2007.平方和与立方和

#include<stdio.h> #define EX(a,b) (a)=(a)+(b);(b)=(a)-(b);(a)=(a)-(b) int main() { int i,n,x,y; while(scanf("%d %d",&i,&n)!=EOF) { if(i>n) { EX(i,n); } for(x=0,y=0;i<=n;i++) { if(i%2==0) x+=i*i; else y+=i*i*i; } printf("%d %d/n",x,y); } return 0; }

 

2008.数值统计

#include<stdio.h> int main() { int i,n,f,l,z; double x; while(scanf("%d",&n)!=EOF) { if(n<=0) break; for(i=1,f=0,l=0,z=0;i<=n;i++) { scanf("%lf",&x); if(x<0) {f=f+1;} else if(x==0) {l=l+1;} else {z=z+1;} } printf("%d %d %d/n",f,l,z); } return 0; }

 

2009.求数列和

#include<stdio.h> #include<math.h> int main() { int i,m; double n,sum,x; while(scanf("%lf%d",&n,&m)!=EOF) { for(i=1,sum=n;i<m;i++) { x=sqrt(n); sum+=x; n=x; } printf("%0.2lf/n",sum); } return 0; }

 

2010.水仙花数

#include<stdio.h> #include<math.h> int main() { int m,n,x; while(scanf("%d%d",&m,&n)!=EOF) { for(x=0;m<=n;m++) { if(m==pow(m/100,3)+pow((m%100)/10,3)+pow((m%100)%10,3)) { x++; if(x>1) printf(" "); printf("%d",m); } } (x==0)?printf("no/n"):printf("/n"); } return 0; }

 

2011.多项式求和

#include<stdio.h> double f1(int n); int main() { int i,m,n; while(scanf("%d",&m)!=EOF) { for(i=1;i<=m;i++) { scanf("%d",&n); printf("%.2f/n",f1(n)); } } return 0; } double f1(int a) { int i; double sum,x; for(i=1,sum=0;i<=a;i++) { if(i%2==0) { x=-1.0/i; } else { x=1.0/i; } sum+=x; } return (sum); }

 

2012.素数判定

#include<stdio.h> #include<stdlib.h> int main() { int i,x,y,s,t,n; while(scanf("%d%d",&x,&y)==2) {t=0; if(x==0 && y==0) {exit(-1);} for(i=x;i<=y;i++) { s=x*x+x+41; x++; for(n=0;n<=s/2;n++) { if(s%(n+2)==0) { t=1; } } } if(t!=1) printf("OK/n"); else { printf("Sorry/n"); } } return 0; }

 

2013.蟠桃记

#include<stdio.h> int main(viod) { int i,n,a; while(scanf("%d",&n)!=EOF) { for(i=1,a=1;i<n;i++) { a=(a+1)*2; } printf("%d/n",a); } return 0; }

 

2014.青年歌手大奖赛_委员会打分

#include<stdio.h> int main() { int n,min,max,i,t,x,sum; while(scanf("%d",&n)!=EOF) { scanf("%d",&min); scanf("%d",&max); if(min>max) { t=min; min=max; max=t; } for(i=1,sum=0;i<(n-1);i++) { scanf("%d",&x); if(x>=min && x<=max) {sum+=x;} else if(x<min) { sum+=min; min=x; } else { sum+=max; max=x; } } printf("%.2lf/n",(sum+0.001)/(n-2)); } return 0; }

 

2015.偶数求和

#include<stdio.h> #define A n%m int main() { int n,m,i,t; while(scanf("%d%d",&n,&m)!=EOF) { t=2; if(n<m) {printf("%d/n",(t+2*m)/2);} else { for(i=1;i<=n/m;i++) { printf("%d",(t+t+2*(m-1))/2); if(i<n/m) {printf(" ");} t+=2*m; } if(A!=0) { if(A==1){printf(" %d/n",(t+t+2*(A-1))/2);;} else {printf("%d/n",(t+t+2*(A-1))/2);} } else {printf("/n");} } } return 0; }

 

2016.数据的交换输出

#include<stdio.h> int main() { int N[105],n,i,temp,min; while(scanf("%d",&n)&&n!=0) { for(i=0;i<n;i++) { scanf("%d",&N[i]); } min=N[0]; for(i=1;i<n;i++) { if(min>N[i]) min=N[i]; } for(i=0;i<n;i++) { if(min==N[i]) { temp=N[0]; N[0]=N[i]; N[i]=temp; } } for(i=0;i<n;i++) { if(i<n-1) printf("%d ",N[i]); else printf("%d/n",N[i]); } } return 0; }

 

2017.字符串统计

#include<stdio.h> #include<string.h> int main() { int n,i,s,t,l; char E[1000]; while(scanf("%d",&n)!=EOF) { for(i=0;i<=n;i++) { gets(E); l=strlen(E); for(t=0,s=0;t<l;t++) { if(E[t]>='0' && E[t]<='9') s++; } if(i>=1) printf("%d/n",s); } } return 0; }

 

2018.母牛故事

#include<stdio.h> int count_tn (n); int count_sn (n); int main() { int n; while(scanf("%d",&n) && n!=0) { printf("%d/n",count_sn (n)); } return 0; } int count_tn (n) { int tn; if(n>=1 && n<=4) return (1); else return (tn=count_tn (n-1)+count_tn (n-3)); } int count_sn (n) { int sn; if(n==1) return (1); else return (sn=count_sn (n-1)+count_tn (n)); }

 

2019.数列有序

#include<stdio.h> int main() { int i,n,t,m,N[101],temp; while(scanf("%d %d",&n,&m)!=EOF && (n!=0 || m!=0)) { for(i=n;i>0;i--) { scanf("%d",&N[i]); if(m<N[i]) { N[i-1]=N[i]; N[i]=m; for(i=i-2;i>=0;i--) { scanf("%d",&N[i]); } for(t=n;t>=0;t--) { if(t>0) printf("%d ",N[t]); else printf("%d/n",N[t]); } } } } return 0; }

 

2020.绝对值排序

#include<stdio.h> #include<math.h> int main() { int N[100],i,j,n,temp; while(scanf("%d",&n) && n!=0) { for(i=0;i<n;i++) scanf("%d",&N[i]); for(i=0;i<n-1;i++) { for(j=0;j<n-i-1;j++) { if(fabs(N[j])<fabs(N[j+1])) {temp=N[j];N[j]=N[j+1];N[j+1]=temp;} } } for(i=0;i<n;i++) { if(i<n-1) printf("%d ",N[i]); else printf("%d/n",N[i]); } } return 0; }

 

2021.发工资啦

#include<stdio.h> int main() { int N[100],i,n,x,s; while(scanf("%d",&n) && n!=0) { for(i=0;i<n;i++) { scanf("%d",&N[i]); } for(i=0,x=0;i<n;i++) { s=N[i]/100+N[i]%100/50+N[i]%50/10+N[i]%10/5+N[i]%5/2+(N[i]-N[i]/5*5)%2; x+=s; } printf("%d/n",x); } return 0; }

 

2022.海选女主角

#include<stdio.h> #include<math.h> int main() { int N[100][100],m,n,i,j,max,x,y; while(scanf("%d %d",&m,&n)!=EOF) { for(i=0;i<m;i++) { for(j=0;j<n;j++) { scanf("%d",&N[i][j]); } } max=N[0][0]; for(i=0;i<m;i++) { for(j=0;j<n;j++) { if(fabs(max)<fabs(N[i][j])) { max=N[i][j]; x=i+1;y=j+1;printf("%d %d %d",x,y,max); } } } printf("%d %d %d/n",x,y,max); } return 0; }

 

2023.求平均成绩

#include<stdio.h> double averagen (); double average_m (); int n,m; int main() { int i,j,x; double S[50][5]; while(scanf("%d %d",&n,&m)!=EOF) { extern double B[50], A[50]; x=0; for(i=0;i<50;i++) { A[i]=0;B[i]=0; } for(i=0;i<n;i++) { for(j=0;j<m;j++) { scanf("%lf",&S[i][j]); } } averagen (S); average_m (S); for(i=0;i<n;i++) { for(j=0;j<m;j++) { if(S[i][j]<B[j]/n) { break; } if(j==m-1) x++; } } printf("%d/n/n",x); } return 0; } double A[50]={0}; double B[50]={0}; double averagen (double S[][5],int i,int j) { int s; for(i=0,s=0;i<n;i++) { for(j=0;j<m;j++) { A[s]+=S[i][j]; } if(i<n-1) printf("%.2lf ",A[s]/m); else printf("%.2lf/n",A[s]/m); s++; } return (1); } double average_m (double S[][5],int i,int j) { int s; for(j=0,s=0;j<m;j++) { for(i=0;i<n;i++) { B[s]+=S[i][j]; } if(j<m-1) printf("%.2lf ",B[s]/n); else printf("%.2lf/n",B[s]/n); s++; } return (1); }

 

2024.C语言合法标识符

#include<stdio.h> #include<string.h> int main() { char str[100][51]; int i,j,l,n,t; while(scanf("%d",&n)!=EOF) { int X[100]={0}; str[100][51]=getchar(); for(i=0;i<n;i++) { gets(str[i]); } for(t=0;t<n;t++) { l=strlen(str[t]); if(str[t][0]<'9' && str[t][0]>'0') { X[t]=1; } else { for(j=0;j<l;j++) { if(!((str[t][j]>='a' && str[t][j]<='z')||(str[t][j]>='A' && str[t][j]<='Z')||(str[t][j]=='_')||(str[t][j]<='9' && str[t][j]>='0'))) { X[t]=1; break; } } } } for(i=0;i<n;i++) {//printf("%d/n",X[i]); if(X[i]==0) printf("yes/n"); else printf("no/n"); } } return 0; }

 

2025.查找最大元素

#include<stdio.h> #include<string.h> int main() { char str[101],max; int i,flag,l; while(gets(str)!=NULL) { max=str[0]; flag=0; l=strlen(str); for(i=1;i<l;i++) { if(max<str[i]) { max=str[i]; flag=i; } } for(i=0;i<l;i++) { printf("%c",str[i]); if(max==str[i]) printf("(max)"); if(i==l-1) printf("/n"); } } return 0; }

 

2026.首字母变大写

#include<stdio.h> #include<string.h> int main() { char str[100]; int i,l; while(gets(str)!=NULL) { str[0]=str[0]+'A'-'a'; l=strlen(str); for(i=1;i<l;i++) { if(str[i]==' ') str[i+1]=str[i+1]+'A'-'a'; } puts(str); } return 0; }

 

2027.统计元音

#include<stdio.h> #include<string.h> int main() { char str[100][102]; int n,i,j,l; while(scanf("%d",&n)!=EOF) { str[100][102] =getchar(); for(i=0;i<n;i++) { gets(str[i]); } for(i=0;i<n;i++) { int N[5]={0}; l=strlen(str[i]); for(j=0;j<l;j++) { switch(str[i][j]) { case 'a': N[0]++;break; case 'e': N[1]++;break; case 'i': N[2]++;break; case 'o': N[3]++;break; case 'u': N[4]++;break; case 'A': N[0]++;break; case 'E': N[1]++;break; case 'I': N[2]++;break; case 'O': N[3]++;break; case 'U': N[4]++;break; default : break; } } if(i<n-1) printf("a:%d/ne:%d/ni:%d/no:%d/nu:%d/n/n",N[0],N[1],N[2],N[3],N[4]); else printf("a:%d/ne:%d/ni:%d/no:%d/nu:%d/n",N[0],N[1],N[2],N[3],N[4]); } } return 0; }

 

2028.Lowest Common Multiple Plus

#include<stdio.h> int m_2 (); int main() { int n,M,x,i; while(scanf("%d",&n)!=EOF) { scanf("%d",&M); for(i=1;i<n;i++) { scanf("%d",&x); M=M/m_2(M,x)*x; } printf("%d/n",M); } return 0; } int m_2 (m,n) { int min,j,s; if(m>n) min=n; else min=m; for(j=2,s=1;j<=min;j++) { if(m%j==0 && n%j==0) s=j; } return (s); }

 

2029回文串

#include<stdio.h> #include<string.h> int main() { char str[100]; int i,s,t,n,l,flag; scanf("%d",&n); str[100]=getchar(); for(i=0;i<n;i++) { flag=1; gets(str); l=strlen(str); for(s=0,t=l-1;s<l/2;s++,t--) { if(str[s]!=str[t]) { flag=0;break; } } if(flag) printf("yes/n"); else printf("no/n"); } return 0; }

 

2030.汉字统计

#include<stdio.h> #include<string.h> int main() { char wen[10000]; int i,s,l,n,j; scanf("%d",&n); wen[999]=getchar(); for(j=0;j<n;j++) { gets(wen); l=strlen(wen); for(i=0,s=0;i<l;i++) { if(wen[i]<0) s++; } printf("%d/n",s/2); } return 0; }

 

2031.进制转换

#include<stdio.h> int main() { int i,t,N,R,Z[32]; while(scanf("%d %d",&N,&R)!=EOF) { i=0;t=0; if(N<0) { printf("-"); N=-N; } while(N) { if(N%R<10) {Z[i++]=N%R+48;} else Z[i++]=N%R+55; N=N/R; t++; } for(i=t-1;i>=0;i--) { printf("%c",Z[i]); } printf("/n"); } return 0; }

 

2032.杨辉三角

#include<stdio.h> double Yang (); int main() { int i,j,n; while(scanf("%d",&n)!=EOF) { for(i=0;i<n;i++) { for(j=0;j<i+1;j++) { if(i==j) printf("1/n"); else if(j==0) printf("1 "); else printf("%.0lf ",Yang(i,j)); } } printf("/n"); } return 0; } double Yang (n,r) { int i,t; double s; if(r>n/2) r=n-r; t=r; for(i=0,s=1;i<r;i++) { s*=((double)n)/t; n--; t--; } return (s); }

 

2033.人见人爱A+B

#include<stdio.h> int main() { int N[6],i,j,n; while(scanf("%d",&n)!=EOF) { for(j=0;j<n;j++) { for(i=0;i<6;i++) { scanf("%d",&N[i]); } for(i=5;i>3;i--) { if((N[i]+=N[i-3])>=60) { N[i]=N[i]-60; N[i-1]++; } } N[3]+=N[0]; for(i=3;i<6;i++) { if(i==5) printf("%d/n",N[i]); else printf("%d ",N[i]); } } } return 0; }

 

2034.人见人爱A-B

#include<stdio.h> int main() { int A[100]={0},B[100]={0},C[100],i,j,n,m,flag,t,min,s; while(scanf("%d %d",&n,&m)!=EOF) { if(n==0 && m==0) break; flag=0;t=0; for(i=0;i<n+m;i++) { if(i<n) scanf("%d",&A[i]); else scanf("%d",&B[i-n]); } for(i=0;i<n;i++) { if(m!=0) { for(j=0;j<m;j++) { if(A[i]==B[j]) break; if(j==m-1) { flag=1; C[t++]=A[i]; } } } else { flag=1; C[t++]=A[i]; } } if(flag==0) printf("NULL/n"); else { for(j=0;j<t;j++) { min=C[j]; for(i=j,s=j;i<t;i++) { if(min>C[i]) { min=C[i]; s=i; } } C[s]=C[j]; C[j]=min; } for(i=0;i<t;i++) { if(i!=t-1) printf("%d ",C[i]); else printf("%d /n",C[i]); } } } return 0; }

 

2035.人见人爱A^B

#include<stdio.h> int X (); int Y (); int a; int main() { int b; while(scanf("%d%d",&a,&b)!=EOF) { if(a==0 && b==0) break; printf("%d/n",X (b)); } return 0; } int X (int t) { if(t==2) return (Y(a,a)); else if(t==1) return (a); else if(t%2==0) return Y(X(t/2),X(t/2)); else return Y(X(t/2+1),X(t/2)); } int Y (int x,int y) { return ((x*y)%1000); }

 

2036.改革春风吹满地

#include<stdio.h> int main() { int n,i; double s,A[101],B[101]; while(scanf("%d",&n)&&n) { for(i=0;i<=n;i++) { if(i<n) scanf("%lf %lf",&A[i],&B[i]); else { A[i]=A[0];B[i]=B[0]; } } for(i=0,s=0;i<n;i++) { s+=(A[i]*B[i+1]-A[i+1]*B[i])/2; } printf("%0.1lf/n",s); } return 0; }

 

2037.今年暑假不AC

#include<stdio.h> int main () { int Ti_s[100],Ti_e[100],i,j,min,m,n,count; while(scanf("%d",&n)&&n!=0) { for(i=0;i<n;i++) { scanf("%d %d",&Ti_s[i],&Ti_e[i]); } for(j=0,min=Ti_e[0];j<n;j++) { m=j;min=Ti_e[j]; for(i=j+1;i<n;i++) { if(min>Ti_e[i]) { min=Ti_e[i]; m=i; } } Ti_e[m]=Ti_e[j]; Ti_e[j]=min; min=Ti_s[m]; Ti_s[m]=Ti_s[j]; Ti_s[j]=min; } count=1; for(i=1,j=0;i<n;i++) { if(Ti_s[i]>=Ti_e[j]) { count++; j=i; } } printf("%d/n",count); } return 0; }

 

2039.三角形

#include<stdio.h> int main () { double N[3],a; int n,i,j; while(scanf("%d",&n)==1) { for(j=0;j<n;j++) { for(i=0;i<3;i++) { scanf("%lf",&N[i]); } if((N[0]+N[1]>N[2]) && (N[0]+N[2]>N[1]) && (N[2]+N[1]>N[0])) printf("YES/n"); else printf("NO/n"); } } return 0; }

 

2040.亲和数

#include<stdio.h> int Q_ab (); int main() { int m,A,B,i; while(scanf("%d",&m)==1) { for(i=0;i<m;i++) { scanf("%d %d",&A,&B); if(Q_ab(A,B)) { if(Q_ab(B,A)) printf("YES/n"); else printf("NO/n"); } else printf("NO/n"); } } return 0; } int Q_ab (int a,int b) { int s,i; for(s=1,i=2;i<=a/2;i++) { if(a%i==0) s+=i; } if(s==b) return (1); else return (0); }

 

2041.超级阶梯

#include<stdio.h> int main() { int f1=1,f2=1,f,i,j,n,m; while(scanf("%d",&n)==1) { for(j=0;j<n;j++) { scanf("%d",&m); if(m==1 || m==2) f=1; else { f1=1;f2=1; for(i=0;i<m-2;i++) { f=f1+f2; f1=f2;f2=f; } } printf("%d/n",f); } } return 0; }

 

2042.不容易系列之二

#include<stdio.h> int main () { int a,n,y,i,j; while(scanf("%d",&n)==1) { for(j=0;j<n;j++) { scanf("%d",&a); for(i=0,y=3;i<a;i++) y=(y-1)*2; printf("%d/n",y); } } return 0; }

 

2043.密码

#include<stdio.h> #include<string.h> int main () { int m,l,i,j; char mi[51]; while(scanf("%d",&m)==1) { for(j=0;j<m;j++) { int t[4]={0}; scanf("%s",mi); l=strlen(mi); if(l>=8&&l<=16) { for(i=0;i<l;i++) { if(mi[i]>='0' && mi[i]<='9') t[0]=1; if(mi[i]>='a' && mi[i]<='z') t[1]=1; if(mi[i]>='A' && mi[i]<='Z') t[2]=1; if(mi[i]=='~'||mi[i]=='!'||mi[i]=='@'||mi[i]=='#'||mi[i]=='$'||mi[i]=='%'||mi[i]=='^') t[3]=1; } } if((t[0]+t[1]+t[2]+t[3])<3) printf("NO/n"); else printf("YES/n"); } } return 0; }

 

2044.一只蜜蜂

#include<stdio.h> int main () { int i,j,n; double a,b,sum,t; while(scanf("%d",&n)==1) { for(i=0;i<n;i++) { scanf("%lf %lf",&a,&b); t=b-a; a=1;b=1; for(j=1,sum=1;j<t;j++) { sum=a+b; a=b;b=sum; } printf("%.0lf/n",sum); } } return 0; }

 

2045.不容易系列之(3)—— LELE的RPG难题

#include<stdio.h>//递归效率很低 double f (int n); int main () { int n,i; double f,f2,f1; while(scanf("%d",&n)==1) { f1=0;f2=2; for(i=2,f=0;i<n;i++) { f=f2+f1*2; f1=f2;f2=f; } if(n==1) printf("3/n"); else printf("%.0lf/n",n==2?f2*3:f*3); } return 0; }

 

2046.骨牌铺方格

#include<stdio.h>//亦为Fabonaci数列 double f(int a,int b); int main () { int n,x,y; double count; while(scanf("%d",&n)==1) { for(y=0,count=0;y<=n/2;y++) { x=n-y*2; count+=f(x,y); } printf("%.0lf/n",count); } return 0; } double f(int a,int b) { double s; int i; for(i=a+b,s=1;i>0;i--) { if(i<=b) { s*=((double)i)/b; b--; } else { s*=((double)i)/a; a--; } } return (s); }

 

2047.阿牛的EOF牛肉串

#include<stdio.h> int main() { int i,n; __int64 f,f1,f2; while(scanf("%d",&n)==1) { f1=3;f2=8; for(i=2;i<n;i++) { f=2*f2+f1*2; f1=f2;f2=f; } if(n==1) printf("3/n"); else printf("%I64d/n",n==2?f2:f); } return 0; }

 

2048.*神、上帝以及老天爷

#include<stdio.h> double f_cp (int a); int main() { int n,c,i; double f; while(scanf("%d",&c)==1) { for(i=0;i<c;i++) { scanf("%d",&n); for(f=0;n>1;n--) f+=f_cp (n); printf("%.2lf%%/n",f*100); } } return 0; } double f_cp (int a) { double s,flag=0; if(a%2==0) flag=1; for(s=1;a>1;a--) { s*=1/((double)a); } if(flag) return (s); else return (-s); }

 

2049.不容易系列之(4)—考新郎

#include<stdio.h>//算法设计什分乱,思路没清晰就开始打代码。 int main() { __int64 s1,s2,S; int j,i,n,m,s,c; while(scanf("%d",&c)==1) { for(j=0;j<c;j++) { scanf("%d %d",&n,&m); s=m; for(s1=1;m>0;m--) s1*=(n-m+1); s2=0; while(s>1) { S=s1; for(i=s;i>1;i--) S/=i; if(s%2) S=-S; s2+=S; s--; } printf("%I64d/n",s2); } } return 0; }

 

2050.折线分割平面

#include<stdio.h> int main() { int c,n,a; int *p[3]={&c,&n,&a}; while(scanf("%d",p[0])==1) { while((*p[0])--) { scanf("%d",p[1]); *p[1]*=2; *p[2]=(*p[1]**p[1]-*p[1]+2)/2; printf("%d/n",*p[2]); } } return 0; }

 

2051.Bitset

#include<stdio.h> int main() { int n,i,E[16]; int *pn=&n; while(scanf("%d",pn)==1) { i=0; while(*pn>0) { *(E+i)=*pn%2; i++; *pn=*pn/2; } while(i--) printf("%d",*(E+i)); printf("/n"); } return 0; }

 

2052.长方形

#include<stdio.h> void f0 (int n); int main() { int n,m,i,j; while(scanf("%d %d",&n,&m)==2) { f0 (n); i=m; while(i--) { printf("|"); j=n; while(j--) printf(" "); printf("|/n"); } f0 (n); printf("/n"); } return 0; } void f0 (int n) { int i; i=n; printf("+"); while(i--) printf("-"); printf("+/n"); }

 

2053.Switch Game

#include<stdio.h> int main() { int n,i,t; while(scanf("%d",&n)==1) { t=0; for(i=1;i<=n/2;i++) { if(n%i==0) t++; } if(t%2==0) t=1; else t=0; printf("%d/n",t); } return 0; }

 

2054.A==B?

#include<stdio.h> #include<string.h> #include<stdlib.h> int main() { static char a[100048],b[100048]; int l1,l2,l,x,y,i,j; while(scanf("%s%s",a,b)==2) { char *pa=a,*pb=b,*p,*c=NULL; l1=strlen(a); l2=strlen(b); if(l1<l2) { l=l1;l1=l2;l2=l; p=pa;pa=pb;pb=p; } if(strchr(pa,'.')) x=strchr(pa,'.')-pa; else { *(pa+l1)='.'; x=l1; l1++; } if(strchr(pb,'.')) { y=pb+l2-1-strchr(pb,'.'); } else { *(pb+l2)='.'; l2++; y=0; } c=(char *)malloc(l1+1); memset(c,'0',l1+1); for(j=l2-1,i=x+y;j>=0&&i>=0;j--,i--) *(c+i)=*(pb+j); for(i=0;i<l1;i++) { if(*(pa+i)-*(c+i)) { printf("NO/n"); break; } if(i==l1-1) printf("YES/n"); } free(c); } return 0; }

 

2055.An easy problem

#include<stdio.h> int main() { char ch,*pc,c; int y,t,*pi; pc=&ch;pi=&y; scanf("%d",&t); while(t--) { c=getchar(); scanf("%c %d",pc,pi); if(*pc>='a' && *pc<='z') printf("%d/n",(-*pc+'a'-1+*pi)); if(*pc>='A' && *pc<='Z') printf("%d/n",(ch-'A'+1+y)); } return 0; }

 

2056.rectangles

#include<stdio.h> #include<stdlib.h> double compare (); int main() { double c[2][5],a,b; int i; double *pc[8]={&c[0][0],&c[1][0],&c[0][1],&c[1][1], &c[0][2],&c[1][2],&c[0][3],&c[1][3]}; while(scanf("%lf",pc[0])==1) { for(i=1;i<8;i++) scanf("%lf",pc[i]); a=compare (c); b=compare (c+1); printf("%.2lf/n",a*b); } return 0; } double compare (double (*p)[4]) { double min,a,b; if(**p>*(*p+1)) { a=**p;**p=*(*p+1);*(*p+1)=a; } if(*(*p+2)>*(*p+3)) { b=*(*p+2);*(*p+2)=*(*p+3);*(*p+3)=b; } if((**p>*(*p+3))||(*(*p+2)>*(*p+1))) min=0.00; else if(**p>=*(*p+2)&&*(*p+1)<=*(*p+3)) min=*(*p+1)-**p; else if(**p<=*(*p+2)&&*(*p+1)>=*(*p+3)) min=*(*p+3)-*(*p+2); else if(**p<*(*p+2)) min=*(*p+1)-*(*p+2); else min=*(*p+3)-**p; return min; }

 

2057.A+Bagain

#include<stdio.h> #include<string.h> #include<math.h> __int64 hex_dec (); int main() { char A[17],B[17]; __int64 *p,sum; p=∑ while(scanf("%s%s",A,B)==2) { *p=hex_dec(A)+hex_dec(B);printf("%I64d/n",*p); if(*p<0) printf("-%I64X/n",-*p); else printf("%I64X/n",*p); } return 0; } __int64 hex_dec (char *p) { int l,i,flag=0; __int64 x,*px; px=&x; l=strlen(p); if(*p=='-') flag=1; for(i=l-1,*px=0;i>=0;i--) { if(i==0) { if((*p=='-')||(*p=='+')) break; } if(*(p+i)>='0' && *(p+i)<='9') *px+=(*(p+i)-'0')*(__int64)pow(16,l-1-i); else if(*(p+i)>='A' && *(p+i)<='F') *px+=(*(p+i)-'A'+10)*(__int64)pow(16,l-1-i); else if(*(p+i)>='a' && *(p+i)<='f') *px+=(*(p+i)-'a'+10)*(__int64)pow(16,l-1-i); } if(flag) return (-*px); else return *px; }

 

2058.The sum problem

#include<stdio.h> #include<math.h> int main() { int n,m,a,b,*pa,*pb,*pn,*pm,i; pn=&n;pm=&m;pa=&a;pb=&b; while(scanf("%d %d",pn,pm)==2 && (*pn!=0 || *pm!=0)) { i=(int)sqrt(2*m); for(;i>0;i--) { if(i%2==0) { if(m%(i/2)==0) { *pa=m/(i/2); if(*pa%2==1) { *pa=(m/(i/2)-i+1)/2; *pb=*pa+i-1; if(*pb<=n) printf("[%d,%d]/n",*pa,*pb); } } } else { if(m%i==0) { *pa=m/i-i/2;*pb=*pa+i-1; if(*pb<=n) printf("[%d,%d]/n",*pa,*pb); } } } printf("/n"); } return 0; }

 

2060.Snooker

#include<stdio.h> int main() { int l_b,sp,so,i,n; int *pl=&l_b,*pp=&sp,*po=&so; while(scanf("%d",&n)==1) { while(n--) { scanf("%d %d %d",pl,pp,po); if(*pl<=6) for(i=7;i>7-*pl;i--) *pp+=i; else *pp+=(*pl-6)*8+27; if(*pp<*po) printf("No/n"); else printf("Yes/n"); } } return 0; }

 

2061.Teasure the new start,freshmen

#include<stdio.h> int main() { int n,k,flag; double a,b,c,s; char na[35]; double *pa=&a,*pb=&b,*pc=&c,*ps=&s; int *pn=&n,*pk=&k; scanf("%d",pn); while((*pn)--) { scanf("%d",pk); *pa=0;*pb=0;flag=1; while((*pk)--) { scanf("%s %lf %lf",na,pc,ps); *pa+=*pc**ps; *pb+=*pc; if(*ps>=0 && *ps<60 && flag) flag=0; } if(flag) printf("%.2lf/n",(*pa)/(*pb)); else printf("Sorry!/n"); if(*pn) printf("/n"); } return 0; }

 

2070.Fibbonacci Number

#include<stdio.h> int main() { int n,*pn; __int64 sum,s0,s1,*ps,*ps0,*ps1; pn=&n,ps=&sum,ps0=&s0,ps1=&s1; while(scanf("%d",pn)==1&&*pn!=-1) { *ps0=0;*ps1=1; if(*pn==1) *ps=1; else *ps=0; while(*pn>1) { *ps=*ps0+*ps1; *ps0=*ps1;*ps1=*ps; (*pn)--; } printf("%I64d/n",*ps); } return 0; }

 

2071.max num

#include<stdio.h> int main() { int tcase,nren,*pt,*pn; double x,m,*px,*max; pt=&tcase;pn=&nren;px=&x,max=&m; scanf("%d",pt); while((*pt)--) { scanf("%d",pn); *max=0; while((*pn)--) { scanf("%lf",px); if(*px>*max) *max=*px; } printf("%.2lf/n",*max); } return 0; }

 

2073.无限的路

#include<stdio.h> #include<math.h> #define s2 sqrt((double)(2))) int main() { int xy[5],n,i,*pn,t; double s,*ps; ps=&s;pn=&n; scanf("%d",pn); while((*pn)--) { scanf("%d %d %d %d",xy,xy+1,xy+2,xy+3); if((*xy+*(xy+1))==(*(xy+2)+*(xy+3))) { *ps=fabs((double)(*xy-*(xy+2))*s2; } else { if(*xy+*(xy+1)>*(xy+2)+*(xy+3)) { t=*xy;*xy=*(xy+2);*(xy+2)=t; t=*(xy+1);*(xy+1)=*(xy+3);*(xy+3)=t; } i=*xy+*(xy+1)+1; *ps=(*(xy+1)+*(xy+2))*sqrt((double)(2)); for(;i<*(xy+2)+*(xy+3);i++) *ps+=((i*s2+hypot((double)(i-1),(double)i)); *ps+=hypot((double)(i-1),(double)(i)); } printf("%.3lf/n",*ps); } return 0; }

 

2075.A|B?

#include<stdio.h> int main() { int tcase,a,b; int *t=&tcase,*pa=&a,*pb=&b; scanf("%d",t); while((*t)--) { scanf("%d %d",pa,pb); if(*pa%*pb==0) printf("YES/n"); else printf("NO/n"); } return 0; }

 

2076.夹角有多大

#include<stdio.h> #include<math.h> int main() { int tcase,*t; double h,m,s,d,a,*ph,*pm,*ps,*pd,*pa; t=&tcase;ph=&h;pm=&m;ps=&s;pd=&d,pa=&a; scanf("%d",t); while((*t)--) { scanf("%lf %lf %lf",ph,pm,ps); if(*ph>=12) *ph-=12; *pa=*pm*60+*ps; *pd=fabs(*pa/120+*ph*30-*pa/10); printf("%I64d/n",*pd>180?(__int64)(360-*pd):(__int64)*pd); } return 0; }

 

2078.复习时间

#include<stdio.h> int main() { int tcase,n,m,a,b; int *t=&tcase,*pn=&n,*pm=&m,*pa=&a,*min=&b; scanf("%d",t); while((*t)--) { scanf("%d %d",pn,pm); *min=100; while((*pn)--) { scanf("%d",pa); if(*min>*pa) *min=*pa; } printf("%d/n",(100-*min)*(100-*min)); } return 0; }

 

2080.夹角有多大II

#include<stdio.h> #include<math.h> #define PI 3.1415926 int main() { int tcase,*t; double xy[4],a,*pa; t=&tcase,pa=&a; scanf("%d",t); while((*t)--) { scanf("%lf %lf %lf %lf",xy,xy+1,xy+2,xy+3); *pa=hypot(fabs(*xy),fabs(*(xy+1)))*hypot(fabs(*(xy+2)),fabs(*(xy+3))); *pa=(*xy**(xy+2)+*(xy+1)**(xy+3))/(*pa); printf("%.2lf/n",acos(*pa)*(180.0/PI)); } return 0; }

 

2081.手机短号

#include<stdio.h> int main() { int ncase,*n; __int64 s,*ps; n=&ncase,ps=&s; scanf("%d",n); while((*n)--) { scanf("%I64d",ps); *ps=*ps%100000+600000; printf("%I64d/n",*ps); } return 0; }

 

2083.简易版之最短距离

#include<stdio.h> #include<math.h> int main() { int i,j,m,n,x[501],*pm,*pn,*p,temp; pm=&m,pn=&n; scanf("%d",pm); while((*pm)--) { scanf("%d",pn); for(i=0;i<*pn;i++) scanf("%d",x+i); for(i=0;i<*pn;i++) { p=(x+i); for(j=i+1;j<*pn;j++) { if(*p>*(x+j)) p=(x+j); } temp=*p;*p=*(x+i);*(x+i)=temp; } for(i=0,temp=0;i<*pn;i++) { temp+=abs(*(x+i)-*(x+*pn/2)); } printf("%d/n",temp); } return 0; }

 

2085.核堆反应

#include<stdio.h> int main() { int n,*pn; __int64 a,b,temp,*t,*pa,*pb; pn=&n,pa=&a,pb=&b,t=&temp; while(scanf("%d",pn) && n!=-1) { *pa=1;*pb=0; while((*pn)--) { *t=*pa; *pa=3**pa+2**pb; *pb+=*t; } printf("%I64d, %I64d/n",*pa,*pb); } return 0; }

 

2087.剪布条

#include<stdio.h> #include<string.h> int main() { char a[1001],b[1001],*p; int lb,count; while(scanf("%s",a)&&a[0]!='#') { scanf("%s",b); p=a;count=0; lb=strlen(b); while(p=strstr(p,b)) { count++; p+=lb; } printf("%d/n",count); } return 0; }

 

2088.Box of Brick

#include<stdio.h> int main() { int n,hi[50],sum,i,num,flag=0,*pn,*s,*nu; pn=&n,s=&sum,nu=&num; while(scanf("%d",pn)==1&&*pn!=0) { if(flag) printf("/n"); flag=1; for(i=0,*s=0;i<*pn;i++) { scanf("%d",hi+i); *s+=*(hi+i); } for(i=0,*s/=*pn,*nu=0;i<*pn;i++) if(*(hi+i)>*s) *nu+=(*(hi+i)-*s); printf("%d/n",*nu); } return 0; }

 

2090.算菜价

#include<stdio.h> int main() { char a[100]; double num,pr,sum=0,*s,*n,*p; n=&num,p=&pr,s=∑ while(scanf("%s %lf %lf",a,n,p)==3) { *s+=*n**p; } printf("%.1lf/n",*s); }

 

2091.空心三角形

#include<stdio.h> int main() { int i,j,flag=0,n,*pn; char a,*pa; pn=&n,pa=&a; while(*pa=getchar()) { if(*pa=='@') break; scanf("%d",pn); for(i=1;i<*pn;i++) { for(j=0;j<*pn-i;j++) printf(" "); putchar(*pa); if(i==1) printf("/n"); if(i!=1) { for(j=0;j<2*i-3;j++) printf(" "); putchar(*pa); printf("/n"); } } for(i=1;i<=2**pn-1;i++) putchar(*pa); printf("/n/n"); *pa=getchar(); } return 0; }

 

2092.整数解

#include<stdio.h> #include<math.h> int main()//这样效率太低了,其实这是一元二次方程的根的存在定理。 { int i,x,y,flag; while(scanf("%d %d",&x,&y)==2&&(x||y)) { flag=1; if(y!=0) for(i=-abs(y);i<=abs(y);i++) { if(i!=0) if(y%i==0) if((i+y/i)==x) { flag=1; break; } if(i==abs(y)) flag=0; } if(flag) printf("Yes/n"); else printf("No/n"); } return 0; }

 

2095.find a present

#include<stdio.h> int main() { int n,a,num,*pn; pn=&n; while(scanf("%d",pn)==1&&*pn) { a=0; while((*pn)--) { scanf("%d",&num); a=a^num; } printf("%d/n",a); } return 0; }

 

2096.小明A+B

#include<stdio.h> int main() { int a,b,t; scanf("%d",&t); while(t--) { scanf("%d %d",&a,&b); printf("%d/n",(a%100+b%100)%100); }

 

2097.Sky数

#include<stdio.h> int test (int n,int r) { int s=0; while(n) { s+=n%r; n/=r; } return (s); } int main() { int n,s; while(scanf("%d",&n)==1&&n) { int flag=0; s=test(n,10); if(test(n,16)==s) if(test(n,12)==s) flag=1; if(flag) printf("%d is a Sky Number./n",n); else printf("%d is not a Sky Number./n",n);//纠结地WA了两次,只因双引号内的句子写错了,真大意。 } return 0; }

 

2098.分柝素数和

#include<stdio.h> int test (); int main() { int n,i,j,t=0,count; while(scanf("%d",&n)==1&&n&&t<501) { t++; count=0; for(i=3;i<=n/2;i+=2) { j=n-i; if(test(i)) { if(test(j)) if(i!=j)//要求是不同的素数 count++; } } printf("%d/n",count); } return 0; } int test (int i) { int j,flag=1; if(i!=2) for(j=2;j<=i/2+1;j++) { if(i%j==0) { flag=0; break; } } if(flag) return 1; else return 0; }

 

 2099.整数的尾数

#include<stdio.h> int main() { int a,b,flag,c,*pa,*pb,*pc; pa=&a,pb=&b,pc=&c; while(scanf("%d %d",pa,pb)==2&&(a||b)) { flag=1; *pc=(*pa+1)*100-*pb; *pa*=100; while(*pa<*pc) { if(!(*pa%*pb)) if(flag) { printf("00"); flag=0; } *pa+=(*pb-*pa%*pb); if(flag) { if(*pa%100<10) printf("0%d",*pa%100); else printf("%d",*pa%100); flag=0; } else if(*pa%100<10) printf("0%d",*pa%100); else printf(" %d",*pa%100); } printf("/n"); } return 0; }

你可能感兴趣的:(c,算法,null,ini,Crash,hex)