算法竞赛入门经典各章习题答案

时间:2022-07-12 04:31:17 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
--

第一章

习题1-1

#iclude <stdioh> int an() {

in a,b,c; double d; canf("%d%%d",&a,&b,&c d=doble)(a+bc) printf("%.lf\n",d/3.0); eturn ;

}

习题1-2

inlue stdi.h> n mi()

in f; doule ;

scan("%d",f; =5*(f-32/9; printf(".3lf\n"c); return 0;

习题1-3

#incude o.h in man() { int n;

scnf("%d",&); prnf("%d\n"n*(1n))/2) return ;



习题1-4

#include i.h> #nclude h>

--


--

#deie i 4.0*atan(1.0) int mai() int n;

scaf("%d",n); rintf("%lf\n,sin(pin)10 pritf"%l\n",co(pin)/80; rturn ; }

习题1-

#include dio.h> it min) { double x,y1,x2y2a;

scanf("%l %lf %lf %f",&x1,&y1,&2,&y2; a=qt((x1x2*(x1-x2)+(y1-y2)*(1-y2)); pritf("%lf\",) retr 0;



习题1-6

#include <stdio.h> it main) {

int n

scnf("%d"&n); if(n%2==0) { pritf("ES\"); } else { printf("NO\n); } eturn 0 }

习题1-

#inlude io.h>

--


--

int min() int n;

dobl a; scanf("%d",&n; =n*9.; if(<300) { print("%.2lf\n"a); } els { }

}

printf("%.2lf\n",a*0.85);

return 0;



习题1-

#inld <tdio.h> #include <at.h> int mai() {

doul n; scanf(%lf"&n);

printf("%.2lf",fbs(n)) return 0; }

习题1-9

#include ioh int mai() it ,b,c; scanf(%d%d%",&a,&b,&c); ifa==b&&b=c) { rit(n\n"); if(a*+b*==cc)||(aa+cc==b*b)||b*b+*c==*a)) {

prinf"ys\");

--


--

ls printf("no\n"); } rtrn 0;

}

习题1-10

#include .h> nt man() {

int ; scanf("%"&n)i(n%==)

i(n%10!=0 {

rintf("o\n") lse if(n400=0

prinf(yes\n"); } els { rint(no\n")} } lse { pinf("no\n"; }

return 0

}



第二章--




--

习题2-1



#iclude <stio.h> int main() { int n,count0 scanf("%d",&); while(>0)

count++; nn/1; } prinf(%d\n",count; retrn 0;

习题2-2

#nclude stio.h> int ain() {

it a,b,c;

forit =10;<=99;i+) { a=i%0; bi1010; c=i/00;

if(i=aa*a+bbb+c*c*c) { prinf("%d\n"i; }

}

return 0; }

习题2-3

#include o.h> int main()

--


--

int i,a,b,c;

scanf("%dd%d",&a&b,&c); fori10;i<=100;++

if(i%3==a&&i%5==&&i%7=c) { printf("%d\n"i; }

fi==101) {

print("no aswer\n"); } return 0; }

习题2-4

#include .h it min() {

int i,j,k,n; scaf("%d",n); fo(i=n;i>0i- for(k=0;k;++) { rint(" ); } or(=0;j<2*i-1;++ {

pritf("");

}

prntf("\"); } return 0; }

习题2-

文件题,南邮竞赛基本不涉及。

--


--

习题2-6

#inlue <tioh> it main() { nt i,n; double sum=1.0; cnf("%d",&n) fr(i=2i<=n;++) { sum+(1.0/i); pint("%.3l\n",sum; retur 0; }

习题2-7

#include tdio.h #iclude h.h> it main( {

int t=-1 duble a=1.0,sum=1.0; wile(fabs(a>=0.00001) { a=10/a2; a=a*t; sm=sum+a; t=t*-1 } rintf("%.9lf\n"sum); return ;

习题2-8

#include dio.> n main() { int i,n,,tmp;

--


--

duble sm=0; scan("%d%d",&n&m); if(>) tmp=n; n=m; m=temp;

for(i=n;i<=m;i++ {

sum=sum+(.0//i); }

printf("%.5lf\n",sm); rturn ;

习题2-



pritf的特殊用法:对于m.n的格式可以用如下方法表示

char ch[2];

rintf("%*.*s\n",,n,ch) 前边的*定义的是总的宽度,后边的定义的是输出的个数。分别对应外面的参数mn 这种方法的好处是可以在语句之外对参数mn赋值,从而控制输出格式。 #incude stdio.h> int man() {

nt ab,;

scnf(%%dd,&a,&,&c); }

prnf("%.*lf\n",c,(doublea/b); retr 0



习题2-10



#nlude o.h> nt mai() {

--


--

int ab,c,de,f,g,h,i;

for(a=1;a<=9;a++) {

for(b=1b<=9;b++)

for(c=1;c<=9;c++)

{

ﻩﻩﻩ or(d=1;d<=;d++) ﻩﻩﻩ { ﻩﻩ

ﻩﻩ

ﻩﻩ

for(e=1;e<=9e++) ﻩﻩ

for(=1;f<=9;f++) ﻩﻩfor(g=1;g<9g+) ﻩﻩ



{

{

if(2*a100+*10+c)==1*(d100+e10+f)&(3*(

ﻩﻩﻩfor(h=1h<=9;h++

ﻩﻩﻩﻩﻩﻩ

ﻩﻩﻩ ﻩﻩﻩfor(i=1;i<=;i+)

*100+b*10+c==1*(g100+h*10+i))&(!b)&&(!=c)&(a!=d)&&(a!e)&(a!=f)&&a!=g)&&a=h&&(a!=i)&(b=c)&b!=d&&b!=e&&(b!=f)&(b=g)&(!=h&&(b!=i)&&(c!=d)&&(c!=e&&c!f)&&c=g)&&(c=)&(!=i)&(d!=e)&&d!=)&&d!=g)&&(d!=h)&&d!=i)&(e!=f)&&e=g)&e!=)&&(e=i)&&(f!=g)&&(f!=h)&(f!i)&(!=h)&(g!=i)&h=i)) ﻩﻩ ﻩﻩ ﻩﻩ ﻩﻩ }

} } }

return 0;





ﻩﻩ }



{

prnt("%d%,%d\n,a100+b*0+c,d*100+e*10+f,g*1

0+h*0+i;

ﻩﻩﻩﻩ ﻩﻩ ﻩﻩﻩﻩ} }

ﻩﻩ}

ﻩﻩﻩﻩ

ﻩﻩﻩ



--


--

第三章

习题3-1



icude io.> #inclde ing.h it min(

it ,a101],n,mx; mmset(a,szeo(),) while(scanf(%d",&)==1 {

an]+;



max=a[0];

for(i1;i<101;i++) { if([]=max ﻩﻩﻩmx=a[i];

}

} or(i=0;i<101i++)

{

if([i]==ax

ﻩﻩ{ prntf("%d ,i); }

}

printf("\n"; rtun 0; }



习题3-2



#inlude <stdioh #inclde ctye.h char [1000;

--


--

int ain() {

char ch

int i,j,m=,sumlog=0,cout=0; wile() ﻩﻩ{ ﻩﻩ ﻩﻩ ﻩﻩ{

cunt++; } }

return 0;

ﻩﻩforj=-1;jm-1;j++) ﻩﻩ} ﻩﻩm--; } }

if(isalpha(s[i))

ele ifs[i]==' '

{

umlng++;

sj]=sj+1]; {

canf("%c,&c); if(ch=='\n'||ch==EOF) } ese

fr(i=m-;i>;i-) {

if(s[i]==' '&&s[i-1]==' '

{

s[m+]=ch

{

brak

for(i=0;i<m;i++)

prnf"%.lf\",doube(sumong+cout+)/(coun+1)));



--


--

习题3-3(重新做!)



#icld <tdio.h incude ctype.h #defne od 100 char s1000; har bu[1000]; int main() { it i,m=0n=0,sum=1; cha c; while1) sanf(%",&ch); if(ch==EOF||ch==\') { break; else s[++]=ch; } } for(i=0;i) if(isdigit(si) { buf[n++]=[i]''; } } or(i=0;i<;i+ { sm=sm*bf[i]; } printf("%d\",sum%mod); return 0 }



--


--



习题3-4



习题3-

inlude sdio.> cha [1000][1000; int main() nt ,j,n; scanf("%d",&n);

scan(" ");

car em;

for(i0;in;i++)

for(=0j {

scanf("%c",&[][j]);

}

} for(i=0;<;i++) for(=i;j+) {



tempa[][j]; --


--

ﻩﻩ a[i][j]=a[j][i]; a[j]i]=tep } }

o(i=-;i>=0;--)

{ for(j0;j<n;j+ { prntf("% ",a[i][j]); }

printf("\n);

retrn 0;

}

习题3-

include tdio.h in ain( {

in b,nm=0;

ca p[10]; san("%d%d,&b,&n); while(b!=0) {

p[++]=%n'0; =b/n

}

for(n i=m-1;i>=0i--) { prnf("%c,pi];

pintf("\n"); retun 0 }

习题37

#include io.h>

in ndj(in nint ) {

int i,a1;

--


--

ori0;i+) { a=;

retun a;

}

int main() {

int i,bn,p[10,m=0,a=0; scanf("%d d",&n,&b); whien>0) { p[m++]=n%0 n=n/10;

} --

for(i=;i>=;i--) { a+=p[i]*ndjc(i,b);

printf(%d\n,a)

rturn 0;

}

习题3-8



--


本文来源:https://www.wddqw.com/doc/447d975859cfa1c7aa00b52acfc789eb172d9e0a.html