hdu2000 ASCII码排序
这是一道简单的排序问题,可以直接使用sort函数解决,但是如果使用值交换的方法则需要注意回车的消除。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| #include<cstdio> #include<iostream> using namespace std; int main() { char a[4],t; while(scanf("%c%c%c",&a[1],&a[2],&a[3])!=EOF) { getchar(); if(a[1]>a[2]) { t=a[1]; a[1]=a[2]; a[2]=t; } if(a[2]>a[3]) { t=a[2]; a[2]=a[3]; a[3]=t; } if(a[1]>a[2]) { t=a[1]; a[1]=a[2]; a[2]=t; } printf("%c %c %c\n",a[1],a[2],a[3]); } return 0; }
|
1 2 3 4 5 6 7 8 9 10 11 12 13
| #include<stdio.h> #include<iostream> #include<algorithm> using namespace std; int main() { char str[3]; while(cin>>str) { sort(str,str+3); cout<<str[0]<<" "<<str[1]<<" "<<str[2]<<endl; } return 0; }
|
hdu2001 计算两点间的距离
这是一道简单的计算题,第一次使用了数学函数和双精度的数,没有太多需要注意的地方。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| #include<stdio.h> #include<iostream> #include<algorithm> #include<cmath> using namespace std; int main() { double x1,y1,x2,y2; while(cin>>x1>>y1>>x2>>y2) { double jie=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)); printf("%.2lf\n",jie); } return 0; }
|
hdu2002 计算球体体积
这是一道求球体体积的计算题,需要注意的是,这里可能会出现整数和实数之间的乘法,需要注意的是题目中的4/3需要写成4.0/3.0,这一点很容易犯错。
还有一点需要注意的是,我们应当使用题目中所给的pi值,否则结果可能会出现一定的误差。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| #define PI 3.1415927 #include<stdio.h> #include<iostream> #include<algorithm> #include<cmath> using namespace std; int main() { double r; while(cin>>r) { double jie=4.0*PI*r*r*r/3.0; printf("%.3lf\n",jie); } return 0; }
|
hdu2003 求绝对值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| #define PI 3.1415927 #include<stdio.h> #include<iostream> #include<algorithm> #include<cmath> using namespace std; int main() { double r; while(cin>>r) { double jie=fabs(r); printf("%.2lf\n",jie); } return 0; }
|
#hdu2004 成绩转换
这道题需要仔细审题,一定要注意分数的范围,无论是上界还是下界。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| #include<stdio.h> #include<iostream> using namespace std; int main() { int grade; while(scanf("%d",&grade)!=EOF) { if(grade>=90&&grade<=100) printf("A\n"); else if(grade>=80&&grade<=89) printf("B\n"); else if(grade>=70&&grade<=79) printf("C\n"); else if(grade>=60&&grade<=69) printf("D\n"); else if(grade>=0&&grade<=59) printf("E\n"); else printf("Score is error!\n"); } return 0; }
|
hdu2005 第几天?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| #include<stdio.h> #include<iostream> using namespace std; int runn(int yy) { if(yy%400==0||(yy%100!=0&&yy%4==0)) return 1 ; else return 0 ; } int main() { int y,m,d,sum; while(scanf("%d/%d/%d",&y,&m,&d)!=EOF) { sum = 0 ; switch(m-1) { case 11 : sum+=30; case 10 : sum+=31; case 9 : sum+=30; case 8 : sum+=31; case 7 : sum+=31; case 6 : sum+=30; case 5 : sum+=31; case 4 : sum+=30; case 3 : sum+=31; case 2 :if (runn(y)==1) sum+=29; else sum+=28; case 1 : sum+=31; } sum+=d; printf("%d\n",sum); } return 0; }
|
hdu2006 求奇数的乘积
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| #include<stdio.h> #include<iostream> using namespace std; int main() { int n; int liste[100]; while(scanf("%d",&n)!=EOF) { int i; for(i=1;i<=n;i++) scanf("%d",&liste[i]); int sum=1; for(i=1;i<=n;i++) if(liste[i]%2!=0) sum*=liste[i]; printf("%d\n",sum); } return 0; }
|
hdu2007 平方和与立方和
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| #include<stdio.h> #include<iostream> using namespace std; int main() { int m,n,t,i; while(scanf("%d%d",&m,&n)!=EOF) { if(m>n) { t=m; m=n; n=t; } int s1=0,s2=0; for(i=m;i<=n;i++) { if(i%2==0) s1=s1+i*i; else s2=s2+i*i*i; } printf("%d %d\n",s1,s2); } return 0; }
|
hdu2008 数值统计
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| #include<stdio.h> #include<iostream> using namespace std; int main() { int n; double liste[100]; while(scanf("%d",&n)&&n) { for(int i=1;i<=n;i++) { scanf("%lf",&liste[i]); } int a=0,b=0,c=0; for(int i=1;i<=n;i++) { if(liste[i]<0) a++; if(liste[i]==0) b++; if(liste[i]>0) c++; } printf("%d %d %d\n",a,b,c); } return 0; }
|
hdu2009 求数列的和
这一题看起来很简单,但是需要进行不同类型数据的运算。这一点还是比较容易犯一些错误的,大家需要注意一些。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| #include<stdio.h> #include<iostream> #include<cmath> using namespace std; int main() { double sum; int m,n; while(scanf("%d%d",&m,&n)!=EOF) { sum=0.0; double mm=m; for(int i=1;i<=n;i++) { sum+=mm; mm=sqrt(mm); } printf("%.2f\n",sum); } return 0; }
|
hdu2010 水仙花数
这是一道很经典的题目,可能需要使用比较多的判断。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| #include<stdio.h> #include<iostream> using namespace std; int main() { int m,n,flag; while(scanf("%d%d",&m,&n)!=EOF) { int i=m; flag=0; for(i=m;i<=n;i++) { int a,b,c; a=i/100; b=i/10%10; c=i%10; if(i==a*a*a+b*b*b+c*c*c) { if(flag==0) { flag++; printf("%d",i); } else { flag++; printf(" %d",i); }
} } if(flag==0) { printf("no\n"); } else { printf("\n"); } } return 0; }
|
最后更新时间:
梦想依在 人生正当年