最新算法竞赛入门经典第二版习题答案资料文档格式.docx
《最新算法竞赛入门经典第二版习题答案资料文档格式.docx》由会员分享,可在线阅读,更多相关《最新算法竞赛入门经典第二版习题答案资料文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
fprintf(fin,"
%d\n"
min+1);
for(max=1;
max>
max++;
fprintf(fout,"
max-1);
fclose(fin);
fclose(fout);
return0;
1-1
inta,b,c;
scanf("
%d%d%d"
&
a,&
b,&
c);
doubleaverage;
average=(a+b+c)/3.0;
//一定要将int型转为浮点型
printf("
Average=%.3lf"
average);
system("
pause"
}
1-2
doublef,c;
请输入华氏温度f\n"
%lf"
f);
c=(f-32)*5/9;
摄氏温度c=%.3lf\n"
c);
1-3
intn;
%d"
n);
(1+n)*n/2);
1-4
math.h>
constdoublepi=4.0*atan(1.0);
while(n>
=360)
请输入小于360°
的角\n"
正弦:
%lf\n余弦:
sin(n*pi/180),cos(n*pi/180));
1-5
doublex1,y1,x2,y2;
请输入点A的坐标\n"
%lf%lf"
x1,&
y1);
请输入点B的坐标\n"
x2,&
y2);
doubled;
d=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
%.3lf\n"
d);
1-6
inta;
a);
if(a%2==0)printf("
该数是偶数"
elseprintf("
该数非偶数"
1-7
constinta=95;
你要买多少件衣服\n"
if(a*n>
=300)printf("
需要%.2lf元\n"
a*n*0.85);
(double)a*n);
//由于输出是小数%.2lf,故一定要将int型转化为浮点型
1-8
doublea;
if(a>
0)printf("
%.2lf"
a);
-a);
1-9(方法一)
inta,b,c,max,min,middle;
while(a<
0||b<
0||c<
0)
三边必须都是大于零的正整数"
min=a;
if(a>
b)min=b;
c)min=c;
max=a;
if(a<
b)max=b;
c)max=c;
middle=a+b+c-min-max;
if(min+middle>
max)printf("
yes"
no"
1-9(方法二)
inta,b,c,t=0;
b){t=a;
a=b;
b=t;
c){t=a;
a=c;
c=t;
if(b>
c){t=b;
b=c;
if(a+b>
c)printf("
1-10
if(n%4==0)
if(n%100==0)
if(n%400==0)
}
3n+1解决篇1
intcount=0;
doublei,m;
i);
for(;
i>
1;
m=i/2;
if(floor(m+0.5)!
=m){i=3*i+1;
i/=2;
count+=2;
}//floor(x)取x的整数部分.
else{i/=2;
count++;
count);
3n+1解决篇2
#include<
intmain(){
longlongn,count=0;
//longlong的取值范围:
-2^63~2^63-1
%I64d"
&
while(n>
1){
if(n%2==1)n=n*3+1;
elsen/=2;
count++;
%I64d\n"
count);
数据统计解决篇
intx,n=0,s=0,min,max;
while(scanf("
x)==1)
if(n==0){min=max=x;
}//读取第一个数的时候将第一个数赋值给min和max
s+=x;
if(x<
min)min=x;
if(x>
max)max=x;
n++;
%d%d%.3lf\n"
min,max,(double)s/n);
2-1(fin)
digit.in"
rb"
digit.out"
/*fin=stdin;
fout=stdout;
*/
inta,i=0;
fscanf(fin,"
while
(1)
a/=10;
i++;
if(a<
1)break;
%d\r\n"
i);
//system("
2-1(freopen)
//#defineLOCAL//在编译选项中定义LOCAL
#ifdefLOCAL
freopen("
r"
stdin);
w"
stdout);
#endif
2-2(freopen)
//#defineLOCAL//编译选项中定义
daffodil.out"
inta,b,c,m;
for(a=1;
a<
=9;
a++)
for(b=0;
b<
b++)
for(c=0;
c<
c++)
m=a*100+b*10+c;
if(m==a*a*a+b*b*b+c*c*c)printf("
m);
2-2(fin)
FILE*fout;
for(c=0;
=9