ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:17.59KB ,
资源ID:6379190      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6379190.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(算法竞赛入门经典第二版习题问题详解.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

算法竞赛入门经典第二版习题问题详解.docx

1、算法竞赛入门经典第二版习题问题详解求int的上限与下限#include /运行时间长,请等待. int main() int min ,max; FILE *fin,*fout; fin=fopen(min of int.out,wb); fout=fopen(max of int.out,wb); for(min=-1;min0;) max+ ; fprintf(fout,%dn,max-1); fclose(fin); fclose(fout); return 0; 1-1#include int main() int a,b,c; scanf(%d%d%d,&a,&b,&c); doub

2、le average; average=(a+b+c)/3.0; /一定要将int型转为浮点型 printf(Average=%.3lf,average ); system(pause); return 0; 1-2#include int main() double f,c; printf(请输入华氏温度fn); scanf(%lf,&f); c=(f-32)*5/9 ; printf(摄氏温度c=%.3lfn,c); system(pause); return 0; 1-3#include int main() int n; scanf(%d,&n); printf(%dn,(1+n)*n

3、/2) ; system(pause); return 0; 1-4#include #include int main() const double pi =4.0*atan(1.0); int n; scanf(%d,&n); while(n=360) printf(请输入小于360的角n); scanf(%d,&n); printf(正弦:%lfn余弦:%lf,sin(n*pi/180),cos(n*pi/180); system(pause); return 0; 1-5#include #include int main() double x1,y1,x2,y2; printf(请输

4、入点A的坐标n); scanf(%lf%lf,&x1,&y1); printf(请输入点B的坐标n); scanf(%lf%lf,&x2,&y2); double d; d=sqrt(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2); printf(%.3lfn,d); system(pause); return 0; 1-6#include int main() int a; scanf(%d,&a); if(a%2=0)printf(该数是偶数); else printf(该数非偶数); system(pause); return 0; 1-7#include int main

5、() const int a=95; int n; printf(你要买多少件衣服n); scanf(%d,&n); if(a*n=300)printf(需要%.2lf元n,a*n*0.85); else printf(需要%.2lf元n,(double)a*n); /由于输出是小数%.2lf,故一定要将int型转化为浮点型 system(pause); return 0; 1-8#include #include int main() double a; scanf(%lf,&a); if(a0)printf(%.2lf,a); else printf(%.2lf,-a); system(p

6、ause); return 0; 1-9(方法一)#include int main() int a,b,c,max,min,middle; scanf(%d%d%d,&a,&b,&c); while(a0|b0|cb)min=b;if(ac)min=c; max=a;if(ab)max=b;if(amax)printf(yes); else printf(no); system(pause); return 0; 1-9(方法二)#include int main() int a,b,c,t=0; scanf(%d%d%d,&a,&b,&c); while(a0|b0|cb)t=a;a=b;

7、b=t; if(ac)t=a;a=c;c=t; if(bc)t=b;b=c;c=t; if(a+bc)printf(yes); else printf(no); system(pause); return 0; 1-10#include int main() int n; scanf(%d,&n); if(n%4=0) if(n%100=0) if(n%400=0) printf(yes); else printf(no); else printf(yes); else printf(no); system(pause); return 0; 3n+1解决篇1#include int main

8、() int count=0;double i,m; scanf(%lf,&i); for(;i1;) m=i/2; if(floor(m+0.5)!=m)i=3*i+1;i/=2;count+=2;/floor(x)取x的整数部分. else i/=2;count+; printf(%dn,count); system(pause); return 0; 3n+1解决篇2#includeint main() long long n, count = 0;/long long 的取值范围:-263263-1 scanf(%I64d, &n); while(n 1) if(n % 2 = 1)

9、n = n*3+1; else n /= 2; count+; printf(%I64dn, count); return 0;数据统计解决篇#include int main() int x,n=0,s=0,min,max; while(scanf(%d,&x)=1) if(n=0)min=max=x;/读取第一个数的时候将第一个数赋值给min和max s+=x; if(xmax)max=x; n+; printf(%d %d %.3lfn,min,max,(double)s/n); system(pause); return 0; 2-1(fin)#include int main() F

10、ILE *fin,*fout; fin=fopen(digit.in,rb); fout=fopen(digit.out,wb); /*fin=stdin; fout=stdout;*/ int a,i=0; fscanf(fin,%d,&a); while(1) a/=10; i+; if(a1)break; fprintf(fout,%drn,i); fclose(fin); fclose(fout); /system(pause); return 0;2-1(freopen)#include /#define LOCAL/在编译选项中定义LOCAL int main() #ifdef L

11、OCAL freopen(digit.in,r,stdin); freopen(digit.out,w,stdout); #endif int a,i=0; scanf(%d,&a); while(1) a/=10; i+; if(a1)break; printf(%dn,i); return 0;2-2(freopen)#include /#define LOCAL/编译选项中定义 int main() #ifdef LOCAL freopen(daffodil.out,w,stdout); #endif int a,b,c,m; for(a=1;a=9;a+) for(b=0;b=9;b+

12、) for (c=0;c=9;c+) m=a*100+b*10+c; if(m=a*a*a+b*b*b+c*c*c)printf(%dn,m); /system(pause); return 0; 2-2(fin)#include int main() FILE *fout; fout=fopen(daffodil.out,wb); int a,b,c,m; for(a=1;a=9;a+) for(b=0;b=9;b+) for(c=0;c=9;c+) m=a*a*a+b*b*b+c*c*c; if(m=a*100+b*10+c) fprintf(fout,%drn,m); fclose(fo

13、ut); return 0;2-3(fin)#includeint main() FILE *fin,*fout; fin=fopen(hanxin.in,rb); fout=fopen(hanxin.out,wb); /fin=stdin; /fout=stdout; int a,b,c,x,temp=0;/temp用来判断是否在10到100内存在这样的数 fscanf(fin,%d%d%d,&a,&b,&c); for(x=10;x=100;x+) if(x%3=a&x%5=b&x%7=c) fprintf(fout,%drn,x); temp=1; break; if(!temp)fpr

14、intf(fout,No answerrn); fclose(fin); fclose(fout); return 0;2-3(freopen)#includeint main() /会在编译选项中定义LOCAL #ifdef LOCAL freopen(hanxin.in,r,stdin); freopen(hanxin.out,w,stdout); #endif int a,b,c,x,temp=0; scanf(%d%d%d,&a,&b,&c); for(x=10;x=100;x+) if(x%3=a&x%5=b&x%7=c) printf(%dn,x); temp=1; break;

15、if(!temp)printf(No answern); return 0;2-4(fin)#includeint main() FILE *fin,*fout; fin=fopen(triangle.in,rb); fout=fopen(triangle.out,wb); /fin=stdin; /fout=stdout; int n,i,j,k; fscanf(fin,%drn,&n); for(i=1;i=n;i+) for(j=1;j=1;k-)fprintf(fout,*); fprintf(fout,rn); fclose(fin); fclose(fout); return 0;

16、2-4(freopen)#includeint main() /在编译选项内定义LOCAL #ifdef LOCAL freopen(triangle.in,r,stdin); freopen(triangle.out,w,stdout); #endif int n,i,j,k; scanf(%d,&n); for(i=1;i=n;i+) for(j=1;j=1;k-)printf(*); printf(n); return 0;2-5(fin)#includeint main() FILE *fin,*fout; fin=fopen(stat.in,rb); int n,a,i,m,coun

17、t=0; fscanf(fin,%d,&n); for(i=1;i=n+1;i+) fscanf(fin,%d,&a); if(i=n+1)m=a; fclose(fin); fin=fopen(stat.in,rb); for(i=0;i=n;i+) fscanf(fin,%d,&a); if(i!=0) if(am) count+; fclose(fin); fout=fopen(stat.out,wb); fprintf(fout,%drn,count); fclose(fout); return 0;2-5(freopen)#includeint main() freopen(stat

18、.in,r,stdin); freopen(stat.out,w,stdout); int n,a,i,m,count=0; scanf(%d,&n); for(i=1;i=n+1;i+) scanf(%d,&a); if(i=n+1)m=a; freopen(stat.in,r,stdin); for(i=0;i=n;i+) scanf(%d,&a); if(i!=0) if(am) count+; printf(%dn,count); return 0;2-6(fin)#includeint main() FILE *fin,*fout; fin=fopen(harmony.in,rb);

19、 int n,i; double H=0; fscanf(fin,%d,&n); for(i=1;i=n;i+) H+=(double)1/i; fclose(fin); fout=fopen(harmony.out,wb); fprintf(fout,%.3lfrn,H); fclose(fout); return 0;2-6(freopen)#includeint main() #ifdef LOCAL freopen(harmony.in,r,stdin); freopen(harmony.out,w,stdout); #endif int n,i; double H=0; scanf(

20、%d,&n); for(i=1;i=n;i+) H=H+double/i; printf(%.3lf,H); return 0;2-7(fin)#includeint main() FILE *fout; int i; double H=0; for(i=1;2*i-11000000;i+) if(i%2=1)H+=(double)1/(2*i-1); else H-=(double)1/(2*i-1); fout=fopen(approximation.out,wb); fprintf(fout,%lfrn,H); return 0;2-7(freopen)#includeint main(

21、) #ifdef LOCAL freopen(approximation.in,r,stdin); freopen(approximation.out,w,stdout); #endif int i; double H=0; for(i=1;2*i-11000000;i+) if(i%2=1)H+=(double)1/(2*i-1); else H-=(double)1/(2*i-1); printf(%lf,H); return 0;2-8(fin,double)#include#includeint main() FILE *fin,*fout; fin=fopen(subsequence

22、.in,rb); fout=fopen(subsequence.out,wb); int n,m,i; double H=0; double ii; fscanf(fin,%d%d,&n,&m); for(i=n;i=m;i+) ii=(double)i*i; H+=1/ii; fprintf(fout,%.5lfrn,H); fprintf(fout,%.2lfrn,(double)clock()/CLOCKS_PER_SEC);/比较double和long long运行效率 fclose(fin); fclose(fout); return 0; 2-8(fin,long long)#in

23、clude#includeint main() FILE *fin,*fout; fin=fopen(subsequence.in,rb); fout=fopen(subsequence.out,wb); int n,m,i; double H=0; fscanf(fin,%d%d,&n,&m); for(i=n;i=m;i+) long long ii=1;/定义 ii=ii*i*i; /不用ii=i*i也不是ii*=i*i,这样做是为了防止i*i溢出; 可以认为这一步将int型转化为long long 型 H+=1/(double)ii;/不是(double)1/ii fprintf(fo

24、ut,%.5lfrn,H); fprintf(fout,%.2lfrn,(double)clock()/CLOCKS_PER_SEC); /比较double和long long运行效率 fclose(fin); fclose(fout); return 0; 2-8(freopen)#include#define LOCALint main() #ifdef LOCAL freopen(subsequence.in,r,stdin); freopen(subsequence.out,w,stdout); #endif int n,m,i; double H=0,ii; scanf(%d%d,&n,&m); for(i=n;i=m;i+) H+=1/(double)i*i); printf(%.5lfn,H); return 0;2-9(fin)#includeint main() FI

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1