杭电ACM综述Word文档下载推荐.docx
《杭电ACM综述Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《杭电ACM综述Word文档下载推荐.docx(32页珍藏版)》请在冰豆网上搜索。
}
printf("
%c%c%c\n"
str[0],str[1],str[2]);
}
}
2.
输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离。
输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x2,y2,数据之间用空格隔开。
对于每组输入数据,输出一行,结果保留两位小数。
0001
0110
1.00
1.41
答案:
math.h>
voidmain()
{
doublea,b,c,d;
doublee;
while(scanf("
%lf%lf%lf%lf"
a,&
b,&
c,&
d)!
e=sqrt((d-b)*(d-b)+(c-a)*(c-a));
%.2lf\n"
e);
3.
根据输入的半径值,计算球的体积。
输入数据有多组,每组占一行,每行包括一个实数,表示球的半径。
输出对应的球的体积,对于每组输入数据,输出一行,计算结果保留三位小数。
1
1.5
4.189
14.137
Hint
#definePI3.1415927
doublei;
doublej;
%lf"
i)!
j=(4.0/3.0)*PI*i*i*i;
%.3lf\n"
j);
4.
求实数的绝对值。
输入数据有多组,每组占一行,每行包含一个实数。
对于每组输入数据,输出它的绝对值,要求每组数据输出一行,结果保留两位小数。
123
-234.00
123.00
234.00
doublei,j;
j=sqrt(i*i);
5.
输入一个百分制的成绩t,将其转换成对应的等级,具体转换规则如下:
90~100为A;
80~89为B;
70~79为C;
60~69为D;
0~59为E;
输入数据有多组,每组占一行,由一个整数组成。
对于每组输入数据,输出一行。
如果输入数据不在0~100范围内,请输出一行:
“Scoreiserror!
”。
56
67
100
E
D
A
Scoreiserror!
inti;
%d"
chargrade;
if(i>
0&
&
60)
grade='
E'
;
elseif(i>
=60&
70)
D'
=70&
80)
C'
=80&
90)
B'
=90&
=100)
A'
else
F'
switch(grade)
case'
:
printf("
E\n"
);
break;
case'
D\n"
C\n"
B\n"
A\n"
default:
\n"
6.
给定一个日期,输出这个日期是该年的第几天。
输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sampleinput,另外,可以向你确保所有的输入数据是合法的。
对于每组输入数据,输出一行,表示该日期是该年的第几天。
1985/1/20
2006/3/12
20
71
inta,b,c;
%d/%d/%d"
c)!
intdata1,data2,data3,data;
if((a%4!
=0)||(a%400!
=0)&
(a%100==0))
if(b>
2&
b<
=12)
if(b<
5)
{
data1=31*(b/2);
data2=0;
data3=28;
data=data1+data2+data3+c;
printf("
%d\n"
data);
}
elseif(b<
7)
{
data2=30;
10)
data2=30*2;
12)
data2=30*3;
else
data2=30*4;
elseif(b>
=2)
if(b==1)
data=c;
printf("
data=31+c;
elseif((a%400==0)||(a%4==0)&
(a%100!
=0))
data3=29;
7.
给你n个整数,求他们中所有奇数的乘积。
输入数据包含多个测试实例,每个测试实例占一行,每行的第一个数为n,表示本组数据一共有n个,接着是n个整数,你可以假设每组数据必定至少存在一个奇数。
输出每组数中的所有奇数的乘积,对于测试实例,输出一行。
3123
42345
3
15
#include<
intn,t,result;
while(scanf("
&
n)!
{
inti;
result=1;
for(i=0;
i<
n;
++i)
{
scanf("
t);
if((t&
1)==1)
result*=t;
}
result);
}
return0;
8.
给定一段连续的整数,求出他们中所有偶数的平方和以及所有奇数的立方和。
输入数据包含多组测试实例,每组测试实例包含一行,由两个整数m和n组成。
对于每组输入数据,输出一行,应包括两个整数x和y,分别表示该段连续的整数中所有偶数的平方和以及所有奇数的立方和。
你可以认为32位整数足以保存结果。
13
25
428
20152
longa,b,m,n;
%d%d"
b)!
m=0;
n=0;
if(a>
b)
longt;
t=a;
a=b;
b=t;
for(a;
a<
=b;
a++)
if(a%2==0)
m+=a*a;
else
n+=a*a*a;
%d%d\n"
m,n);
9.
统计给定的n个数中,负数、零和正数的个数。
输入数据有多组,每组占一行,每行的第一个数是整数n(n<
100),表示需要统计的数值的个数,然后是n个实数;
如果n=0,则表示输入结束,该行不做处理。
对于每组输入数据,输出一行a,b和c,分别表示给定的数据中负数、零和正数的个数。
60123-10
512340.5
0
123
005
答案“:
intn,a,b,c,i;
doublem;
=EOF)
a=b=c=0;
if(n!
=0)
{
for(i=0;
n;
i++)
{
scanf("
m);
if(m<
0)
a++;
elseif(m==0)
b++;
elseif(m>
c++;
}
else
break;
%d%d%d\n"
a,b,c);
10.
数列的定义如下:
数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和。
输入数据有多组,每组占一行,由两个整数n(n<
10000)和m(m<
1000)组成,n和m的含义如前所述。
对于每组输入数据,输出该数列的和,每个测试实例占一行,要求精度保留2位小数。
814
22
94.73
3.41
doublen;
intm;
doublea=n,j=0;
scanf("
for(i=1;
m;
j=sqrt(n);
a+=j;
n=j;
printf("
a);
11.
春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的:
“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:
153=1^3+5^3+3^3。
现在要求输出所有在m和n范围内的水仙花数。
输入数据有多组,每组占一行,包括两个整数m和n(100<
=m<
=n<
=999)。
对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等于m,并且小于等于n,如果有多个,则要求从小到大排列在一行内输出,之间用一个空格隔开;
如果给定的范围内不存在水仙花数,则输出no;
每个测试实例的输出占一行。
100120
300380
no
370371
intm,n,a,b,c,d;
m,&
d=0;
//每次输入要初始化个数。
while(m<
=n)
a=m%10;
b=(m%100)/10;
c=m/100;
if(a*a*a+b*b*b+c*c*c==m)
if(d==0)
m);
else
%d"
d++;
m++;
if(d==0)
no\n"
}
12.
多项式的描述如下:
1-1/2+1/3-1/4+1/5-1/6+...
现在请你求出该多项式的前n项的和。
输入数据由2行组成,首先是一个正整数m(m<
100),表示测试实例的个数,第二行包含m个正整数,对于每一个整数(不妨设为n,n<
1000),求该多项式的前n项的和。
对于每个测试实例n,要求输出多项式前n项的和。
每个测试实例的输出占一行,结果保留2位小数。
2
12
0.50
intmain()
intn,m,i;
doublea[1000],j;
a[1]=1;
for(i=2;
1000;
j=1.0/i;
if(i%2!
=1)
a[i]=a[i-1]-j;
a[i]=a[i-1]+j;
while(n--)
scanf("
%.2f\n"
a[m]);
13.
对于表达式n^2+n+41,当n在(x,y)范围内取整数值时(包括x,y)(-39<
=x<
y<
=50),判定该表达式的值是否都为素数。
输入数据有多组,每组占一行,由两个整数x,y组成,当x=0,y=0时,表示输入结束,该行不做处理。
对于每个给定范围内的取值,如果表达式的值都为素数,则输出"
OK"
否则请输出“Sorry”,每组输出占一行。
01
00
OK
intmain(void)
intx,y,i,j,k,sum,t;
%d%d"
x,&
y)!
sum=0;
if(x==0&
y==0)
for(i=x;
=y;
{
t=i*i+i+41;
k=1;
for(j=2;
j*j<
=t;
j++)
{
if(t%j==0)
{
k=0;
break;
}
}
if(k)
sum++;
if(sum==y-x+1)
OK\n"
Sorry\n"
14.
喜欢西游记的同学肯定都知道悟空偷吃蟠桃的故事,你们一定都觉得这猴子太闹腾了,其实你们是有所不知:
悟空是在研究一个数学问题!
什么问题?
他研究的问题是蟠桃一共有多少个!
不过,到最后,他还是没能解决这个难题,呵呵^-^
当时的情况是这样的:
第一天悟空吃掉桃子总数一半多一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子。
聪明的你,请帮悟空算一下,他第一天开始吃的时候桃子一共有多少个呢?
输入数据有多组,每组占一行,包含一个正整数n(1<
n<
30),表示只剩下一个桃子的时候是在第n天发生的。
对于每组输入数据,输出第一天开始吃的时候桃子的总数,每个测试实例占一行。
4
22
intn;
n)!
=EOF)
printf("
%.0f\n"
3*pow(2,n-1)-2);
15.
青年歌手大奖赛中,评委会给参赛选手打分。
选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分。
输入数据有多组,每组占一行,每