算法竞赛入门经典1-3章习题答案

上传人:新** 文档编号:469163072 上传时间:2022-09-28 格式:DOCX 页数:34 大小:24.75KB
返回 下载 相关 举报
算法竞赛入门经典1-3章习题答案_第1页
第1页 / 共34页
算法竞赛入门经典1-3章习题答案_第2页
第2页 / 共34页
算法竞赛入门经典1-3章习题答案_第3页
第3页 / 共34页
算法竞赛入门经典1-3章习题答案_第4页
第4页 / 共34页
算法竞赛入门经典1-3章习题答案_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《算法竞赛入门经典1-3章习题答案》由会员分享,可在线阅读,更多相关《算法竞赛入门经典1-3章习题答案(34页珍藏版)》请在金锄头文库上搜索。

1、第一章习题1-1#include int main()int a,b,c;double d;scanf(%d%d%d,&a,&b,&c);d=(double)(a+b+c);printf(%.3lfn,d/3.0);return 0;习题1-2#include int main()int f;double c;scanf(%d,&f);c=5.0*(f-32)/9;printf(%.3lfn,c);return 0;习题1-3#include int main()int n;scanf(%d,&n);printf(%dn,(n*(1+n)/2);return 0;习题1-4#include #

2、include #define pi 4.0*atan(1.0)int main()int n;scanf(%d,&n);printf(%lfn,sin(pi*n)/180);printf(%lfn,cos(pi*n)/180);return 0;习题1-5#include #include int main()double x1,y1,x2,y2,a;scanf(%lf %lf %lf %lf,&x1,&y1,&x2,&y2);a=sqrt(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2);printf(%lfn,a);return 0;习题1-6#include int mai

3、n()int n;scanf(%d,&n);if(n%2=0)printf(yesn);elseprintf(non);return 0;习题1-7#include int main()int n;double a;scanf(%d,&n);a=n*95.0;if(a300)printf(%.2lfn,a);elseprintf(%.2lfn,a*0.85);return 0;习题1-8#include #include int main()double n;scanf(%lf,&n);printf(%.2lf,fabs(n);return 0;习题1-9#include int main()

4、int a,b,c;scanf(%d%d%d,&a,&b,&c);if(a*a+b*b=c*c)|(a*a+c*c=b*b)|(b*b+c*c=a*a)printf(yesn);elseprintf(non);return 0;习题1-10#include int main()int n;scanf(%d,&n);if(n%4=0)if(n%100!=0)printf(yesn);elseif(n%400=0)printf(yesn);elseprintf(non);elseprintf(non);return 0;第二章习题2-1#include int main()int n,count=

5、0;scanf(%d,&n);while(n0)count+;n=n/10;printf(%dn,count);return 0;习题2-2#include int main()int a,b,c;for(int i=100;i=999;i+)a=i%10;b=i/10%10;c=i/100;if(i=a*a*a+b*b*b+c*c*c)printf(%dn,i);return 0;习题2-3#include int main()int i,a,b,c;scanf(%d%d%d,&a,&b,&c);for(i=10;i=100;i+)if(i%3=a&i%5=b&i%7=c)printf(%d

6、n,i);break;if (i=100)printf(no answern);return 0;习题2-4#include int main()int i,j,k,n;scanf(%d,&n);for(i=n;i0;i-)for(k=0;kn-i;k+)printf( );for(j=0;j2*i-1;j+)printf(#);printf(n);return 0;习题2-5文件题,南邮竞赛基本不涉及。习题2-6#include int main()int i,n;double sum=1.0;scanf(%d,&n);for(i=2;i=n;i+)sum+=(1.0/i);printf(%

7、.3lfn,sum);return 0;习题2-7#include#includeint main() double sum = 0, a = 1.0; for(int i = 1; (1.0/i) (1e-6); +i) sum += a/(2*i-1); a *= -1; printf(%.8lf %.8lfn, sum, 4*sum); return 0;习题2-8#include int main()int i,n,m,temp;double sum=0;scanf(%d%d,&n,&m);if(nm)temp=n;n=m;m=temp;for(i=n;i=m;i+)sum=sum+(

8、1.0/i/i);printf(%.5lfn,sum);return 0; 本题陷阱在于1/(n)2 + . , 用1/(n*n)会溢出 , 改为1/n/n就好。习题2-9printf的特殊用法:对于m.n的格式可以用如下方法表示 char ch20; printf(%*.*sn,m,n,ch); 前边的*定义的是总的宽度,后边的定义的是输出的个数。分别对应外面的参数m和n 。 这种方法的好处是可以在语句之外对参数m和n赋值,从而控制输出格式。 #include int main() int a,b,c;scanf(%d%d%d,&a,&b,&c);printf(%.*lfn,c,(doubl

9、e)a/b);return 0;习题2-10解法1:#include int main() int a,b,c,d,e,f,g,h,i;for(a=1;a=9;a+)for(b=1;b=9;b+)for(c=1;c=9;c+)for(d=1;d=9;d+)for(e=1;e=9;e+)for(f=1;f=9;f+)for(g=1;g=9;g+)for(h=1;h=9;h+)for(i=1;i=9;i+)if(2*(a*100+b*10+c)=1*(d*100+e*10+f)&(3*(a*100+b*10+c)=1*(g*100+h*10+i)&(a!=b)&(a!=c)&(a!=d)&(a!=

10、e)&(a!=f)&(a!=g)&(a!=h)&(a!=i)&(b!=c)&(b!=d)&(b!=e)&(b!=f)&(b!=g)&(b!=h)&(b!=i)&(c!=d)&(c!=e)&(c!=f)&(c!=g)&(c!=h)&(c!=i)&(d!=e)&(d!=f)&(d!=g)&(d!=h)&(d!=i)&(e!=f)&(e!=g)&(e!=h)&(e!=i)&(f!=g)&(f!=h)&(f!=i)&(g!=h)&(g!=i)&(h!=i)printf(%d,%d,%dn,a*100+b*10+c,d*100+e*10+f,g*100+h*10+i);return 0;解法二:#include int main() int x, y, z, a10 = 0; for(x = 100; x 333; x+) y = 2*x; z = 3*x; /令a出现的数字 = 1 ax/100 = ax/10%10 = ax%10 = 1; ay/100 = ay/10%10 = ay%10 = 1; az/100 = az/10%10 = az%10 = 1; int i,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 习题/试题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号