acm经典百题
#include <stdio.h> int main( )1088 阶乘求和 { int ncase,n, i,j; long sum,t; scanf("%d", &ncase); for(i=0;i<ncase;i++) {scanf("%d", &n);sum=0; t=1; for(j=1;j<=n;j++) { t=t*j;sum=sum+t; } printf("%ld\n",sum);} } #include<stdio.h> #include<string.h> main() 1108 {int n; 单词缩写月份的英文缩 写 while(scanf("%d\n",&n)!=EOF& &n>0&&n<=12) {if(n==1)printf("Jan\n"); else if(n==2)printf("Feb\n"); else if(n==3)printf("Mar\n"); else if(n==4)printf("Apr\n"); else if(n==5)printf("May\n"); else if(n==6)printf("June\n"); else if(n==7)printf("July\n"); else if(n==8)printf("Aug\n"); else if(n==9)printf("Sep\n"); else if(n==10)printf("Oct\n"); else if(n==11)printf("Nov\n"); elseprintf("Dec\n"); }return 0; }
#include <stdio.h> int main( ) 规律题数列2 {int n; 1079 while(scanf("%d",&n) != EOF) {if(n%4 == 2) printf("YES\n");else printf("NO\n");} }
#include<stdio.h> int main() 1059 {int n,t,sum; while(scanf("%d",&n)!=EO F) {sum=0;while(n--) { scanf("%d",&t); sum+=t; } printf("%d\n",sum);} } A+B for Input-Output Practice (VI) #include<stdio.h> int main()1046 一年中的 {int d,m,y,s,n; 第几天 while(scanf("%d%d%d",&y, &m,&d)!=EOF) { switch(m) {case 1:s=0;break; case 2:s=31;break; case 3:s=59;break; case 4:s=90;break; case 5:s=120;break; case 6:s=151;break; case 7:s=181;break; case 8:s=212;break; case 9:s=243;break; case 10:s=273;break; case 11:s=304;break; case 12:s=334;break; } s=s+d; if(y%400==0||(y%4==0&& y%100!=0)) n=1; else n=0; if(n==1&&m>2) s++; printf("%d\n",s); } return 0; }
#include"stdio.h" #include"math.h" int main() 1019 整数解 {int m,n;Yes”或者“No while(scanf("%d%d",&m,&n) &&(m!=0||n!=0)) {if(-10000<n<10000&&-1000 0<m<10000) { int sign=0,flag=0; if(n<0) { sign=1; n=-n; } int i; int j=sqrt(n); if(n==0) flag=1; for(i=1;i<=j;i++) { int x=i; int y=n/i; if(x*y==n) { if(sign) { if(-x+y==m||x-y==m) { flag=1; break;} } else {if(x+y==m||-(x+y)==m) { flag=1; break;}}} if(flag) break;} if(flag) printf("Yes\n"); else printf("No\n"); } } return 0; }
acm经典百题
#include<stdio.h> int main()1047 成绩转换 {int a; while((scanf("%d",&a))!=EOF) {if(a>=90&&a<=100) printf("A\n"); if(a>=80&&a<90) printf("B\n"); if(a>=70&&a<80) printf("C\n"); if(a>=60&&a<70) printf("D\n"); if(a>=0&&a<60) printf("E\n"); }} #include<stdio.h> 1077 int main() 求 N 个数字的最大最 {int x,max=1,min=1,n,t; 小值 while(scanf("%d",&n)!=EOF&&( n!=0)) while(n--){ scanf("%d",&x); if(x>=max){ t=max; max=x; x=t; } if(x<=min){ t=min; min=x; x=t; }} printf("%d %d\n",max,min); }
#include<stdio.h> int main() 鸡兔同笼 {int nCase,i,nf; 1081 while(scanf("%d",&nCase)!=E OF) {for(i=0;i<nCase;i++) {scanf("%d",&nf); if(nf%2!=0) printf("0 0\n"); else if(nf%4!=0) printf("%d %d\n",nf/4+1,nf/2); else printf("%d %d\n",nf/4,nf/2); } } }
#include<stdio.h> int main() 1011幸运 { int i,N,n; 数 while(scanf("%d",&N) && N!=0) { if(N==0) return 0; else { n=0; for(i=1;i<=N;i++) { n++; while(n%3!=0 && n%5!=0) { if(n%3==0) n=n; else if(n%5==0) n=n; else n++; } } print
f("%d\n",n); } } } #include<stdio.h> #include<math.h> int main() 1093素数 {int X,N; scanf("%d",&N); while(N--) { int i,f=1; scanf("%d",&X); if(X==1) printf("NO\n"); else {for(i=2;i<=sqrt(X);i++) {if(X%i==0) f=0; } if(f==1) printf("YES\n"); else printf("NO\n"); } }return 0; } #include <stdio.h> int main() 1064 {int m,n,x,i; 折线分割平面 while(scanf("%d",&m)!=EO F) for (i=0;i<m;i++) { scanf("%d",&n); x=2*n*n-n+1; printf("%d\n",x); }return 0; }
#include<stdio.h> #include<math.h> int main()1045 有趣的数字 {int i,x,y,N; while(scanf("%d",&N)!=EOF) for (i=1;i<=N;i++) { x=sqrt(i+100); y=sqrt(i+268); if(x*x==i+100&&y*y==i+268 ) printf("%d\n",i); } return 0; } #include<stdio.h> 1084 int main() 找硬币 {int n,a,b,c,d; while(scanf("%d",&n)!=EOF& &(n!=0)) {a=n/25; b=(n-25*a)/10; c=(n-25*a-10*b)/5; d=(n-25*a-10*b-c*5); printf("%d\n",a+b+c+d); } return 0; }
#include<stdio.h> 1082 #include<math.h> 完全平方数 int main() {int n,N,m; while(scanf("%d",&N)!=EOF) while(N--) { scanf("%d",&m); n=sqrt(m); if(n*n==m) printf("YES\n"); else printf("NO\n");} }
acm经典百题
#include<stdio.h> void rev(int *p1,int *p2); void main() 1087比大小 {int n1,n2,n3,n; int *p1=&n1,*p2=&n2,*p3=&n3; while(scanf("%d",&n)!=EOF) while(n--){ scanf("%d%d%d",&n1,&n2,&n3); if(n1>n2) rev(p1,p2); if(n1>n3) rev(p1,p3); if(n2>n3) rev(p2,p3); printf("%d %d %d\n",n1,n2,n3); } } void rev(int *p1,int *p2) {int p; p=*p1;*p1=*p2;*p2=p; } #include <stdio.h> int main () 1021 人见人爱A+B {int ah,am,as,bh,bm,bs; int n; scanf ("%d",&n); while (n--){ scanf ("%d%d%d%d%d%d",&ah,&am, &as,&bh,&bm,&bs); if (as+bs>=60) { as=as+bs-60; am++; } else as=as+bs; if (am+bm>=60) { am=am+bm-60; ah++; } else am=am+bm; ah=ah+bh; printf ("%d %d %d\n",ah,am,as); } }
#include <stdio.h> int main () 1095分数序 列 { int m,n; int i=2,j=1,t; float sum=0; scanf("%d",&m); while(m--) {scanf("%d",&n); while (n--) {sum+=(float)i/(float)j; t=i; i=i+j; j=t; } printf ("%.2f\n",sum); sum=0; i=2,j=1; } }
#include<stdio.h> 1086 int main() 字符串比大小 {char a[10],b[10]; int N,i,j; scanf("%d",&N); for(i=0;i<N;i++) {scanf("%s",a);scanf("%s",b ); for(j=0;j<10;j++) {if(a[j]>b[j]) {printf("MING\n");break; }else if(a[j]<b[j]) { printf("GONG\n");break; } }if(j==10) printf("SAME\n"); }}} #include<stdio.h> int main() 1105 数字交换 {int N,i,t,p,j,min,max; int a[80]; scanf("%d",&N); getchar();while(N--) { i=0; scanf ("%d",&a[i++]); while (getchar ()==' ') { scanf ("%d",&a[i++]); } t=0; max=a[0]; for(j=0;j<i;j++) { if(a[j]>max) { max=a[j]; t=j; } } a[t]=a[0]; a[0]=max; p=0; min=a[0]; for(j=0;j<i;j++) { if(a[j]<min) { min=a[j]; p=j;} } a[p]=a[j-1]; a[j-1]=min; for(j=0;j<i-1;j++) {printf("%d ",a[j]); } printf("%d\n",a[i-1]);} } #include<stdio.h> int main()
计算书费 1069 #include <stdio.h> int main(){int i,j,k,t; float a[10];float sum[100]; a[1]=28.9;a[2]=32.7; a[3]=45.6;a[4]=78; a[5]=35;a[6]=86.2; a[7]=27.8;a[8]=43; a[9]=56;a[10]=65; while (scanf("%d",&k)!=EOF) {for (i=1;i<=k;i++){ sum[i]=0; f
or (j=1;j<=10;j++){ scanf("%d",&t); sum[i]=sum[i]+t*a[j];} } for (i=1;i<=k;i++){ printf("%.2f\n",sum[i]); } } }
#include<stdio.h> int main() 1106 报数 { int i,k,m,n,num[50],*p;
#include <stdio.h> int main() 1114 找零 {int n,i,m,c;
1117 比大
acm经典百题
while(scanf("%d",&n)!=EOF) {if(n==0)return 0; else { p=num; for(i=0;i<n;i++) *(p+i)=i+1;i=0; k=0; m=0;} while(m<n-1) { if(*(p+i)!=0) k++; if(k==3) { *(p+i)=0; k=0; m++; } i++; if(i==n)i=0; } while(*p==0) p++; printf("%d\n",*p); } }
scanf("%d",&n); for(i=0;i<n;i++) {scanf("%d",&m);c=0; while(m){c=c+m/10; m=m%10; c=c+m/5; m=m%5; c=c+m/2; m=m%2; c=c+m; m=m%1; } printf("%d\n",c);} }
小{int x,y,z,t,n,i; scanf("%d",&n);if(n<100) {for(i=1;i<=n;i++) { scanf("%d%d%d",&x,&y,& z); if(x>=y){t=x;x=y; y=t; if(x>=z){t=x;x=z; z=t; }if(y>=z){t=y;y=z;z=t; }printf("%d %d %d\n",x,y,z) ; } } } #include <stdio.h> int main() 1057 { int n,sum,t; while(scanf("%d",&n)!=EO F && n) { sum=0; while(n--) {scanf("%d",&t); sum+=t; }
#include<stdio.h> int main() 1020How many days { int M,k; while(scanf("%d%d",&M,&k)!=E OF&&(M!=0||k!=0)) { int tian=0;while(M!=0) { M--;tian++; if(tian%k==0) M++; } printf("%d\n",tian); } return 0; }
#include<stdio.h> int main() 1058 {int n,t,sum,i,N; scanf("%d",&n); for(i=1;i<=n;i++) {while(scanf("%d",&N)!=EOF ) { sum=0;while(N--) {scanf("%d",&t);sum+=t;} printf("%d\n",sum);} }}
}printf("%d\n",sum); return 0; }
#include <stdio.h> int main () 1078数列 { int t1,t2,t3,a,b,n,i; while(scanf ("%d %d %d",&a,&b,&n)!=EOF &&(a!=0||b!=0||n!=0)) { t3=t1=t2=1; for (i=3;i<=n;i++){ t3=(a*t2+b*t1)%7; t1=t2; t2=t3; } printf ("%d\n",t3); } }
#include<stdio.h> #include<string.h> main() 1128 {int n,i; 股票助剂码 scanf("%d\n",&n); for(i=0;i<n;i++) {char s[81]; int j,k=1;gets(s); s[0]=s[0]-32; for(j=0;s[j]!='\0';j++) {if(s[j]==' ') { s[k]=s[j+1]-32; k++; } } s[k]='\0'; puts(s);} } #include<stdio.h> main() {int a,b,c,id=1; while( scanf("%d",&a) && a) { scanf("%d%d",&b,&c); a=a*2;if(a*a>=b*b+c*c)
#include<stdio.h> #include<math.h> main()硬币组合 {int t; 1126 scanf("%d",&t); while(t--) { int n,m; scanf("%d %d",&n,&m); printf("%d\n",n*m-n-m+1); }return 0; }
#include"stdio.h" #include"string.h" int main() 1090 星期几 {char*name[]={" ","MONDAY","TUESDAY","WE
#include"stdio.h" int cow(int n) 1018 母牛的 {int 故 事 cow1=2,cow2=3,cow3=4,co w,i; if(n<1) return 0;
acm经典百题
DNESDAY","THURSDAY","FRI DAY","SATURDAY","SUNDAY" }; char day[10]; int i; while(gets(day)) { for(i=0;i<8;i++) { if(strcmp(day,name[i])==0) { printf("%d\n",i); break; } } } return 0; }
printf("Pizza %d fits on the table.\n",id++); else printf("Pizza %d does not fit on the table.\n",id++); }return 0; } 1 1 1 2 Alfredo's Pizza Restaurant
else if(n<=4) return n; for(i=4;i<n;i++) {cow=cow3+cow1; cow1=cow2; cow2=cow3; cow3=cow;} return cow; } int main() { int n,sum; while(scanf("%d",&n)!=EO F&&n){ sum=0; sum=sum+cow(n); printf("%d\n",sum);} }
(评成绩等级) 分数序列累加
个人所得税) 递
增牛群 #include<stdio.h>
发电报的费用 数字游戏 #include<stdio.h> int main()
#include<stdio.h> int main() {10000(评成绩等级) int a; while((scanf("%d",&a))!=EOF) {if(a>=90&&a<=100)printf("A\n "); if(a>=80&&a<90) printf("B\n"); if(a>=70&&a<80) printf("C\n"); if(a>=60&&a<70) printf("D\n"); if(a>=0&&a<60)printf("E\n"); }}
int main() {int n,y;
(递增牛
{(发电报的费用) char a[100]; int n,m,i,count; float money; gets(a); scanf("%d",&n); count=strlen(a); if(n==0) { if(count<=10)
群)long f1,f2,f3,f; while(scanf("%d",&n)!=EOF ) {for(y=1;y<=n;y++) { if(y<=3) else { f1=f2; f2=f3; f3=f; } } printf("%d\n",f);}} f=f1+f3; f=f1=f2=f3=1;
money=7.50; else money=0.75*count; }else money=0.75*2*(count+1) printf("%.2f\n",money)} #include<stdio.h> int main() { { int n; if(n==0)
#include<stdio.h> int main() { int i,n;(分数序列累
#include<stdio.h> int main() (个人所得
数字游戏
税) 加)float s,a,b,temp; while(scanf("%d",&n)!=EO { float x,y; while(scanf("%f",&x)!= EOF)
while(scanf("%d",&n)!=EOF) printf("no\n"); else if(n%5==0)
acm经典百题
F) { b=2; for(i=1;i<=n;i++) { s=s+b/a; temp=a; a=b; b=b+temp; return 0;} } printf("%0.2f\n",s); } s=0; a=1; {
{if(x<=1000) y=0;else x=x-1000; y=x*0.05; else if(x<=500) y=x*0.1; if(x<=5000) y=x*0.15; elseif(x<=20000) y=y+x*0.2;else y=y+x*0.25;} printf("%.2f\n",y); } return 0; }
printf("yes\n"); else if(n%3==0) } return 0; printf("yes\n"); } else printf("no\n");
elseif(x<=2000)
换零钱字母移位最小公倍数 #include<stdio.h> int main()(换零钱) { F) { for(s=0;n>=0;n=n-5) {for(m=n;m>=0;m=m-2) { } } } } printf("%d\n",s); s++; int n,m,s,i,j; while(scanf("%d",&n)!=EO
计算机进制转换公约公倍 #include<stdio.h> int main() {
累乘累加两点距离判断回文数 #include<stdio.h> int main()(累乘累加的) { ) int n,s,a,i; while(scanf("%d",&n)!=EOF { s=0;a=1; for(i=1;i<=n;i++) { } } return 0; a=a*i; } s=s+a; printf("%d\n",s);
(计算机)
char c; float a,b,s; while(scanf("%f",&a)!=
EOF) { getchar(); c=getchar(); scanf("%f",&b); if(c=='+') printf("%.2f\n",a+b); if(c=='-') printf("%.2f\n",a-b); if(c=='*') printf("%.2f\n",a*b); if(c=='/') printf("%.2f\n",a/b);} }
#include<stdio.h> int main() {char a;
#include<stdio.h> int main()
#include<stdio.h> #include<math.h> int main()
(字母移位)int n;
(进制转
(两点距离)
(错的)
换){ long int a;int c=1,d=0;
{ float x1,y1,x2,y2,l; while(scanf("%f%f%f%f",&x1,& y1,&x2,&y2)!=EOF) { l=sqrt((x1-x2)*(x1-x2)+(y1{ while(a) c*=2; } y2)*(y1-y2)); printf("%.2f\n",l); return 0; } }
while(scanf("%c",&a)!=EOF) { scanf("%d",&n); getchar(); while(a+n>'z') {n=n-26; printf("%c\n",a+n); } return 0; }
while(scanf("%ld",&a)!=EO F) { d+=a%10*c; a/=10;
printf("%ld\n",d); }
acm经典百题
return 0; #include<stdio.h> int main()
} #include<stdio.h> int main()(判断回文数) { (最小公倍 ) { a=n/10000; c=(n-d)/10%10; { n=t; } b=(n/1000)%10; if((a==d)&&(b==c)) printf("YES\n"); n=m; } } 解的个数 逆
序数 return 0; } else printf("NO\n"); } d=n%10; int n,a,b,c,d; while(scanf("%d",&n)!=EOF
#include<stdio.h> int main() ( 最大公约
(最小公倍
数){int a,b,min,max,i,j; while(scanf("%d%d",&a,&b)!=E OF) { else if(a<b) { max=b; } } { min=b; max=a; min=a;
数和){int m,n,t,r,p; 数) while(scanf("%d%d",&n,&m )!=EOF) { if(m>n) t=m; m=n; p=n*m;
r=n%m;
for(i=min;1;i--) if(a%i==0&&b%i==0) for(j=max;1;j++) if(j%a==0&&j%b==0) break; printf("%d\n%d\n",i,j); } return 0; } 统计不及格方程的跟 #include<stdio.h> #include<string.h> int main() } break; {
while(r!=0) m=r; r=n%m; return 0;
printf("%d %d",m,p/m);
质因数分解球的经过距离 #include<stdio.h>
#include<stdio.h>
int main() (准备客票) int main()(表面积体积) { ) { } printf("%d\n",n*(n-1)); return 0; } int n; { float r,h; float s,v; while(scanf("%f%f",&r,&h)!=EO F) { v=3.14*r*r*h; s=2*3.14*r*r+2*r*3.14*h;
(a 转化为
A){ F) { getchar(); a=a-32; printf("%c\n",a); return 0; } #include<stdio.h> #include<math.h> int main() (方程的跟) {double a,b,c,d,x1,x2,n,m; while(scanf("%lf%lf%lf",&a,&b, &c)!=EOF) {if(a==0) ; { else { d=b*b-4*a*c; if(d>=0) x1=-b+sqrt(d)/(2*a); x2=-b-sqrt(d)/(2*a); printf("%.2f %.2f",x1,x2); } char a; while(scanf("%c",&a)!=EO
while(scanf("%d",&n)!=EOF
printf("%.2f\n%.2f\n",s,v); } #include<stdio.h> int main() (质因数分 return 0; }
##include<stdio.h> #include<math.h> int main()(接的个数)
解){int i,n,k,b[100],h,j,c; while(scanf("%d",&n)!=EOF ) { { h=1; for(i=2;n!=1;i++) k=0; { k=1; break;
{
int i,j,k,h; int n,a[10000],count; scanf("%d",&n); count=0; for(i=1;i<=sqrt(n);i++) a[i]=i*i; for(j=1;i-1>=j;j++) for(h=1;a[h]<=n-a[i]&&i-1>
for(c=2;c<=i-1;c++) if(i%c==0)
acm经典百题
}
else {
n=-b/(2*a);
} {
if(k==0) n=n/i; h++ } b[h]=i; }
=h;h++)// for(k=1;a[k]<=n-a[i]-a[j]&&i -1>=k;k++) { { if(n==a[k]+a[h]+a[j]) count++; } }
m=sqrt(-d)/(2*a); printf("%.2f%+.2fi\n%.2f%+.2fi\ n",n,m,n,-m); } } } return 0; }
while((n%i)==0)
for(j=1;j<h;j++) { printf("%d",b[j]); if(j!=h-1) printf("*"); else printf("\n"); } } return 0; }
printf("%d\n",count); return 0; }
#include<stdio.h> int main() {
#include<stdio.h> int main() (球共经过
#include<stdio.h> int f(int n) { if(n<1) return 0; else { int main() printf("%d",n%10); } } f(n/10); { int y,x,i; while(scanf("%d",&x)!=EOF ) } { y=x; f(x); for(i=1;(y=y/10)>=1;i++); printf("%d\n",i); printf("\n"); } return 0; }
统计不及格人数
(逆序数)
int i,j,n;
float v,c,s; while(scanf("%d",&n)!=EOF) { { i=0; s=0; for(j=0;j<n;j++) scanf("%f",&c); if(c<60) } v=s/n; } s+=c; i+=1;
的距离){ int i; float s,x; while(scanf("%f",&x)!= EOF) { s=x; { s=s+x; x=x/2; } return 0; } for(i=1;i<=9;i++)
printf("%.2f\n",v); printf("%d\n",i); }
printf("%.2f\n",s);
#include<stdio.h> int main()(判断奇偶) { { int n; if(n==0) else else }
#include<stdio.h> int main() (判断是否
#include<stdio.h> int main()(判断闰年) { int y; while(scanf("%d",&y)!=EOF) {if(y%4
==0&&y%100!=0||y%400 ==0) printf("yes\n"); else } printf("no\n"); } return 0;
while(scanf("%d",&n)!=EOF) printf("even\n"); if(n%2==0) printf("even\n"); printf("odd\n"); } return 0; #include<stdio.h> #include<math.h> void main() (是否素数) { int m,i,k;
是){int n(倍数) while(scanf("%d",&n)!=EOF ) { if(n%35==0) else } printf("no\n"); } return 0; #include<stdio.h> int main()(平均值) {float a,b,c,p,sum; while(scanf("%f%f%f",&a,& printf("yes\n");
#include<stdio.h> int main()(整数各位数之
和)
acm经典百题
while(scanf("%d",&m)!=EOF) { k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0) break; if(i>k) printf("yes\n"); else printf("no\n"); } } #include<stdio.h> #include<math.h> int main() (分段函数的
b,&c)!=EOF) {sum=a+b+c; p=sum/3.0; printf("%.2f",p); } return 0; }
{
int n,s; { if(n<0) s=n%10; n=-n;
while(scanf("%d",&n)!=EOF)
while((n=n/10)>=1) s=s+n%10; printf("%d\n",s); } return 0; #include<stdio.h> #include<math.h>) int main()三角形面积 {float a,b,c,p,s; while(scanf("%f%f%f",&a,& b,&c)!=EOF) if(a+b>c&&a+c>b&&b+c>a) {s=0; } p=(a+b+c)/2.0; } } s=sqrt(p*(p-a)*(p-b)*(p-c)); printf("%.2f\n",s); } { } #include<stdio.h> int main()(三数中的最大
值){float a,b,c,m; while(scanf("%f%f%f",&a,&b,&c )!=EOF) {m=a>b?a:b; return 0; m=m>c?m:c; } printf("%.2f\n",m);
值){float a,y,x; while(scanf("%f",&x)!=EOF) { if(x>6) y=5.0/27*(x*x+4*x-6); else if(x<=0) {a=fabs(x*x*x+4); y=23.0/(7*a); } printf("%.2f\n",y); return 0; } #include<stdio.h> int main()商店购物优惠 { { float x,y; if(x>=1000) y=x*0.9; }
#include<stdio.h>
#include<stdio.h>
int main() (猴子吃桃) int main()水仙花数 { int n,i,m; while((scanf("%d",&n)) !=EOF) { m=n; m=2*(m+n); printf("%d\n",m); } return 0; } for(i=9;i!=0;i--) { int n,s,a,b,c;
while(scanf("%f",&x)!=EOF) y=x*0.8; else if(x>=500) y=x*0.95; else if(x>=100) 小兔生小兔 y=x*0.97; } 多项式 完数 printf("%.2f",y); } #include<stdio.h> int main() 某个日期是一 else if(x>=200)
while(scanf("%d",&n)!=EOF) { a=n%10; b=((n-a)/10)%10; c=n/100; s=a*a*a+b*b*b+c*c*c; if(s==n)printf("yes\n"); else } printf("no\n"); } return 0;
#include<stdio.h> int main() ( 英文星期
#include "stdio.h" #include "conio.h" main()统计字符个数
年{ int d,m,y,s,n;中的第几天 while(scanf("%d%d%d",&y,&m, &d)!=EOF) { switch(m) {
几){ int n; while(scanf("%d",&n)! =EOF) { switch(n) {
{ char c; int l=0,s=0,d=0,o=0; while((c=getchar())!='\n') { if(c>='a'&&c<='z'||c>='A'&&c <='Z')
acm经典百题
case 1:s=0;break; case 2:s=31;break; case 3:s=59;break; case 4:s=90;break; case 5:s=120;break; case 6:s=151;break; case 7:s=181;break; case 8:s=212;break; case 9:s=243;break; case 10:s=273;break; case 11:s=304;break; case 12:s=334;break; } 0!=0)) n=1; else n=0; s++; } if(n==1&&m>2) printf("%d\n",s); } return 0; #include<stdio.h> int main()小兔生小兔 { long f1,f2; int i,n,m; { f1=f2=1; while(scanf("%d",&n)!=EOF) for(i=3;i<=n;i++) f2+=f1; } } f1=m; } { m=f2; s=s+d; if(y%400==0||(y%4==0&&y%10
case1:printf("
Monday\n ");break; case2:printf("Tuesday\n ");break; case3:printf("Wednesda y\n");break; case4:printf("Thursday\ n");break; case5:printf("Friday\n"); break; case6:printf("Saturday\n ");break; case7:printf("Sunday\n" );break; } } return 0; }
l++; s++;
else if(c==' ') else if(c>='0'&&c<='9') o++; }
d++; else
printf("%d\n%d\n%d\n%d\n",l,s,d, o); getch(); }
#include <Stdio.h> int main() { int m,i,s; while(scanf("%d",&m)!=EO F) { s=0; for(i=1;i<m;i++) { if(m%i==0) if(s==m) else s=s+i; } printf("yes\n");
#include <stdio.h> float p(int n, int x)N
完数
阶勒让
德{if(n==0) return return ((2*n-1)*x*p(n-1,x)-(n-1)*p(n-2,x ))/n; } OF) printf("%.2f\n",p(n,x)); } int main() { int n,x; while(scanf("%d%d",&n,&x)!=E return 1; 多项式 else if(n==1) x; else
printf("%d\n",f2); return 0;
printf("no\n"); } }
专题共四十二道题目。
评委会打分#include<stdio.h> int main() {
排序#include<iostream> #include<string> using std::string;
DNA 排序#include "stdio.h" #include "string.h" #include "stdlib.h"
acm经典百题
int n,i,j,z,t,a[100],sum,max; double ave;
using namespace std; const int MAX_NUM=1000; void merge(long num[],int n);
#include "malloc.h" typedef struct dnaCount{ char cha[51]; int length; }dnaCount; int sort(int n,dnaCount dna) { int i,j; int num=0; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) { if(dna.cha[i]>dna.cha[j]) num++; } return num; } void display_dna(dnaCount *dna,int
while(scanf("%d",&n)!=EOF) { sum=0; for(i=0;i<n;i++) scanf("%d",&a[i]); for(j=0;j<n;j++) { max=j; for(z=j+1;z<n;z++)
int main() { string str; while(cin>>str) { int len=str.size(); long num[MAX_NUM]; int i=0,j,temp; for(j=0;j<MAX_NUM;j++)
if(a[max]<a[z]) max=z; if (a[j]!=a[max]) { t=a[max];a[max]=a[j];a[j]=t; } } for(i=0;i<n;i++) { sum+=a[i]; } ave=((sum-a[0]-a[n-1])*1.0)/(n-2 ); printf("%.2lf\n",ave); } return 0; } if(j>len-1) for(j=0;j<len;) {
num[j]=0;
temp=str[j]-'0'; if(temp!=5) { num[i]=num[i]*10+temp; j++; } else { if(j) i++; while(str[j]=='5') j++;
line,int row) { int i,j; dnaCount temp; for(i=0;i<row-1;i++) for(j=i+1;j<row;j++) if(dna[i].length>dna[j].length) { strcpy(temp.cha,dna[i].cha); temp.length=dna[i].length;
strcpy(dna[i].cha,dna[j].cha);
i--; } } merge(num,i+1); cout<<num[0]; for(j=1;j<=i;j++) cout<<" "<<num[j]; cout<<endl; }
dna[i].length=dna[j].length;
strcpy(dna[j].cha,temp.cha); dna[j].length=temp.length; } for(i=0;i<row;i++) printf("%s\n",dna[i].cha); } int main()
acm经典百题
return 0; } void merge(long num[],int n) { long temp; int k; for(int i=0;i<n;i++) { k=i; temp=num[i]; for(int j=i;j<n;j++) if(num[k]>num[j]) k=j; if(k!=i) {
{ int n,m; int i,j; char ch; dnaCount *dna; scanf("%d %d",&n,&m); dna=(dnaCount *)malloc(sizeof(dnaCount)*m); getchar(); for(i=0;i<m;i++) { memset(dna[i].cha,'\0',51); for(j=0;j<n;j++) { scanf("%c",&ch); if(ch=='A'||ch=='T'||ch=='C'||ch=='G')
num[i]=num[k]; num[k]=temp; } } }} } getchar();
dna[i].cha[j]=ch; else exit(-1);
dna[i].length=sort(n,dna[i]); display_dna(dna,n,m); return 0; }
纪念品分组#include<st
dio.h> struct th{ int price;}num[30001],temp; int min(int a,int b){ return a<b?a:b;} int part(int s,int e){ int i,j,x;
字符串压缩#include<stdio.h> int main() { int i; char a[100]; int j,m;scanf("%d",&i); while(i>0) {
随机数#include <iostream> #include <cstdio> #include <cstring> using namespace std; const int N = 1010; int a[N], a2[N]; int main() {
acm经典百题
x=num[e].price; i=s-1; for(j=s;j<e;++j) if(num[j].price>x){ ++i; temp=num[j];
i--; scanf("%s",a); for(j=0;a[j]!='\0';j+=2) { m=a[j+1]-'0'; for(;m>0;m--) { printf("%c",a[j]);
int n, i, ans , j, flag; while (scanf("%d", &n) != EOF && n) { memset(a, 0, sizeof(a)); memset(a2, sizeof(a2)); a[0] = n; for (i = 0; i < N; ++i) { a2[i] = a[i] * a[i]; } a[i + 1] = a2[i] / 100 (a2[i] / 1000000) * 10000; } flag = 0; for (i = 0; i < N && !flag; ++i) { for (j = i + 1; j < N && !flag; ++j) { if (a[i] == a[j]) { flag = 1; ans = j; } } } printf("%d\n", ans); } return 0; } 0,
num[j]=num[i]; num[i]=temp;} temp=num[e]; num[e]=num[i+1]; num[i+1]=temp; return i+1;} void quick(int s,int e){ int q; if(s<e){ q=part(s,e); quick(s,q-1); quick(q+1,e);} } int main() { int n,w,i,max,j,last; scanf("%d %d",&w,&n); max=0; for(i=1;i<=n;++i) scanf("%d",&num[i].price); quick(1,n); for(i=1,j=n;i<=j;) if(num[i].price+num[j].price<= w){++max;++i;--j;} else{++i;++max;} printf("%d\n",max); }
} printf("\n"); } }
acm经典百题
逆波兰表达式#include <stdio.h> #include <stdlib.h> char a[10]; double xp() { scanf("%s",a); switch(a[0]) { case '+': return xp()+xp(); case '-': return xp()-xp(); case '*': return xp()*xp(); case '/': return xp()/xp(); default: return atof(a); } return a[0]; } int main() { double ans=0; ans=xp(); printf("%lf\n", ans); return 0; }
平方和与立方和#include <stdio.h> int main() { int x , y, temp, sum1, sum2; while(scanf("%d %d", &x, &y) != EOF) { sum1 = 0; sum2 = 0; if(x > y) { temp = x ; x = y; y = te mp; } for(; x <= y; x++) { if( x % 2 == 0) { sum1 += x * x; } else sum2 += x * x * x ; } printf("%d %d\n", sum1, su m2); } return 0; }
数据交换输出#include <stdio.h> int main(){ int n, i, k, a[100],min, temp; while(scanf("%d", &n) != EOF & & n != 0){ scanf("%d", &a[0]); min = a[0]; k = 0;
for(i = 1; i < n; ++i){ scanf("%d", &a[i]); if(a[i] < min){ min = a[i]; k = i; ; for(i = 1; i <= n; ++i) 1) printf(" "); printf("%d", a[i-1]); printf("\n"); } } return 0; } { if(i != } } te mp = a[0]; a[0] = min; a[k] = temp
字符串统计#include <stdio.h> int main(){ intnum, n, i; char lin e; scanf("%d", &n); getchar(); for(i = 1; i <=n; ++i){ num = 0; for(; (line = getchar()) != '\n'; ){ i f(line >='0' && line <= '9') num ++; } return 0; } } printf("%d\n", num);
语言合法标识符#include <stdio.h> int main(){ int n, i, j,frag; char li ne[50]; while(scanf("%d", &n) != EOF) { getchar(); for(i = 1; i <= n; ++i){ j = 0; frag = 0;
查找最大元素#include <stdio.h> int main(){ int i, max, n, j, line[100]; while((line[0]=getchar()) != EO F){ max = line[0]; i = 1; for(; (line[i] = getchar()) != '\n'; ++i){
if(line[i] > max) { max = l ine[i]; } } n = i;
for(j = 0; j <= n; ++j){ if(line[j] == max){ printf("%c", line[j]); p rintf("(max)"); while((line[j] = getchar()) != '\n' }
acm经典百题
){ if(!((line[j]=='_')||(line[j]>='0'& &line[j]<='9')||(line[j]>='A'&&li ne[j]<='Z')||(line[j]>='a'&&line[j ]<='z'))) frag = 1; else if(line[0] >= '0' && line[0] <= ' 9'){ frag = 1; } } if(frag == 0) printf("yes"); else printf("no"); printf("\n"); } } } return 0; ++j; printf("%c", line[j]); //printf("\n"); } } return 0; }
手机短号#include <stdio.h> #include <string.h> int main () { int n, i; char a[11]; scanf("%d", &n); getchar(); w hile(n--){ for(i = 0; i < 6; ++i) getchar(); gets(a); printf("6% s\n", a); } return 0; }
单词反转#include<stdio.h> #define N 20 void main() { char s[N][100],b; int n,j=0,i,k; scanf("%d",&n); b=getchar(); for(i=0;i<n;i++) gets(s[i]); for(i=0;i<n;i++,j=0) { while(s[i][j]!='\0') { if(j!=0) j++; for(;s[i][j]!='\0'&&s[i][j]!=' ';j++) ; for(k=j-1;s[i][k]!='\0'&&s[i][k]! =' '&&k>=0;k--) printf("%c",s[i][k]); putchar(' '); } printf("\n");
单词数#include<stdio.h> #include<string.h> int main() { int i,j,sum,m,n; char s[1000][100],c; while(scanf("%c",&c)&&c!='#') { sum=i=j=0; s[j][i]=c; for(i=1;c!='\n';i++) { scanf("%c",&s[j][i]); c=s[j][i]; if(s[j][i]==' ') s[j][i]='\0'; while(c==' ') { scanf("%c",&c); if(c!=' '&&c!='\n') { j++; s[j][0]=c; i=0; break; } } }
acm经典百题
} }
s[j][i-1]='\0'; for(m=0;m<j;m++) for(n=m+1;n<=j;n++) if(!(strcmp(s[m],s[n]))) { sum++; break; } printf("%d\n",(j+1)-sum); } return 1; }
ASCII 码排序#include<stdio.h> { ,&c)!=EOF) { { printf("%c else printf("%c else else printf("%c else printf("%c else }} %c { %c %c %c getchar(); if(a>=b) if(c>=a) %c\n",b,a,c); if(b>=c) %c\n",c,b,a); if(b<c) } if(c>=b) %c\n",a,b,c); if(c>=a) %c\n",a,c,b); if(a>c) } char main() a,b,c,d;
计算球体积#include<stdio.h> #define PI 3.1415927 main() { { } double a,v; while(scanf("%lf",&a)!=EOF) v=4*PI*a*a*a/3; } printf("%.3lf\n",v);
求绝对值#include<stdio.h> { { } if(a<0) main() double a; a=-a; }
while(scanf("%c %c %c",&a,&b
while(scanf("%lf",&a)!=EOF) printf("%.2lf\n",a);
printf("%c %c %c\n",b,c,a);
printf("%c %c %c\n",c,a,b);
求奇数的乘积#include<stdio.h> { { for(i=0;i<n;i++) { ); s=s*a; else ; }} } printf("%d\n",s); scanf("%d",&a if(a%2==1) int main() n,s,i,a; s=1;
数值统计#include<stdio.h> { double && { b1=b2=b3=0; for(i=0;i<n;i++) { if(a[i]<0) scanf("%lf",&a[i]); int int main() n,i,b1,b2,b3; a[101]; n!=0) for(i=0;i<n;i++)
求数列的和#include<stdio.h>#include<mat h.h> main() { n,m,s,w,i; while(scanf("%lf%lf",&n,&m)! =EOF) { s=s+n; printf("%.2lf\n",s); }} { s=n; n=sqrt(n); } for(i=1;i<m;i++) double
while(scanf("%d",&n)!=EOF)
while(scanf("%d",&n)!=EOF