hdu 2000-2010

hdu2000 ASCII码排序

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
#include<stdio.h>
#include<iostream>
using namespace std;
int main()
{
char a,b,c,d;
while(scanf("%c%c%c",&a,&b,&c)!=EOF)
{
getchar();
if(a>b)
{
d=a;
a=b;
b=d;
}
if(a>c)
{
d=a;
a=c;
c=d;
}
if(b>c)
{
d=b;
b=c;
c=d;
}
printf("%c %c %c\n",a,b,c);
}
return 0;
}

hdu2001 计算两点间的距离

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<stdio.h>
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
float x1,y1,x2,y2,a,b,c,d,result;
while(scanf("%f %f %f %f",&x1,&y1,&x2,&y2)!=EOF)
{
c=x1-x2;
d=y1-y2;
a=pow(c,2);
b=pow(d,2);
result=sqrt(a+b);
printf("%0.2f\n",result);
}
return 0;
}

hdu2002 计算球体体积

1
2
3
4
5
6
7
8
9
10
11
12
13
#include<stdio.h>
#include<iostream>
#define PI 3.1415927
using namespace std;
int main()
{
double r;
while(scanf("%lf",&r)!=EOF)
{
printf("%0.3f\n",r/3*4*r*r*PI);
}
return 0;
}

hdu2003 求绝对值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<stdio.h>
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
double a,b;
while(scanf("%lf",&a)!=EOF)
{
b=fabs(a);
printf("%0.2f\n",b);
}
return 0;
}

hdu2004 成绩转换

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
#include<stdio.h>
#include<iostream>
using namespace std;
int main()
{
int a,b;
while(scanf("%d",&a)!=EOF)
{
if(a<=100&&a>=0)
{
b=a/10;
switch(b){
case 10 :
case 9 : printf("A\n");
break;
case 8 : printf("B\n");
break;
case 7 : printf("C\n");
break;
case 6 : printf("D\n");
break;
case 5 :
case 4 :
case 3 :
case 2 :
case 1 :
case 0 : printf("E\n");
break;
}
}
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
34
35
36
37
38
39
40
#include<stdio.h>
#include<iostream>
using namespace std;
int main()
{
int y,m,d;
while(scanf("%d/%d/%d",&y,&m,&d)!=EOF)
{
if(y%400==0||(y%4==0&&y%100!=0))
{
if(m==2) d=31+d;
else if(m==3) d=31+29+d;
else if(m==4) d=31+29+31+d;
else if(m==5) d=31+29+31+30+d;
else if(m==6) d=31+29+31+30+31+d;
else if(m==7) d=31+29+31+30+31+30+d;
else if(m==8) d=31+29+31+30+31+30+31+d;
else if(m==9) d=31+29+31+30+31+30+31+31+d;
else if(m==10) d=31+29+31+30+31+30+31+31+30+d;
else if(m==11) d=31+29+31+30+31+30+31+31+30+31+d;
else if(m==12) d=31+29+31+30+31+30+31+31+30+31+30+d;
}
else
{
if(m==2) d=31+d;
else if(m==3) d=31+28+d;
else if(m==4) d=31+28+31+d;
else if(m==5) d=31+28+31+30+d;
else if(m==6) d=31+28+31+30+31+d;
else if(m==7) d=31+28+31+30+31+30+d;
else if(m==8) d=31+28+31+30+31+30+31+d;
else if(m==9) d=31+28+31+30+31+30+31+31+d;
else if(m==10) d=31+28+31+30+31+30+31+31+30+d;
else if(m==11) d=31+28+31+30+31+30+31+31+30+31+d;
else if(m==12) d=31+28+31+30+31+30+31+31+30+31+30+d;
}
printf("%d\n",d);
}
return 0;
}

hdu2006 求奇数的乘积

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<stdio.h>
#include<iostream>
using namespace std;
int main()
{
int n,i,a,b;
while(scanf("%d",&n)!=EOF)
{
a=1;
for(b=1;b<=n;b++)
{
scanf("%d",&i);
if(i%2!=0) a*=i;
}
printf("%d\n",a);
}
return 0;
}

hdu2007 平方和与立方和

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include<stdio.h>
#include<iostream>
using namespace std;
int main()
{
int m,n,i,x,y,t;
while(scanf("%d %d",&m,&n)!=EOF)
{
if(m>n)
{
t=m;
m=n;
n=t;
}
x=0,y=0;
for(i=m;i<=n;i++)
{
if(i%2==0) x+=i*i;
else y+=i*i*i;
}
printf("%d %d\n",x,y);
}
return 0;
}

hdu2008 数值统计

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
#include<stdio.h>
#include<iostream>
using namespace std;
int main()
{
int a,b,c,n,i;
double r;
while(scanf("%d",&n)!=EOF)
{
if(n<100&&n!=0)
{
a=0,b=0,c=0;
for(i=1;i<=n;i++)
{
scanf("%lf",&r);
if(r<0) a++;
else if(r==0) b++;
else c++;
}
printf("%d %d %d\n",a,b,c);
}
else if(n==0) break;
}
return 0;
}

hdu2009 求数列的和

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<stdio.h>
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
int m,i;
double a,n;
while(scanf("%lf %d",&n,&m)!=EOF)
{
a=0;
for(i=1;i<=m;i++)
{
a+=n;
n=sqrt(n);
}
printf("%.2lf\n",a);
}
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
36
37
#include<stdio.h>
#include<iostream>
using namespace std;
int sxhs(int);
int main()
{
int m,n,i,z,a1;
while(scanf("%d %d",&m,&n)!=EOF)
{
if(100<=m<=n<=999)
{
a1=0;
for(i=m;i<=n;i++)
{
if(sxhs(i))
{
if(a1) printf(" ");
a1=1;
printf("%d",i);
}
}
if(!a1) printf("no");
printf("\n");
}
}
return 0;
}
int sxhs(int r)
{
int d,a,b,c;
a=r/100;
b=r%100/10;
c=r%10;
d=a*a*a+b*b*b+c*c*c;
if(r==d) return 1;
return 0;
}

这些题目当然还有更简单的写法,比如hdu2005,我用的是if,else if,但其实用switch会更方便简单,要是想知道更高明的写法,这里就有。