阅读程序写结果之提高篇(c语言版).pdfVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
阅读程序写结果之提高篇(c语言版)

苏州工业园区星海实验中学 读程序写结果之提高篇 “读程序写结果”有时会考查选手经典算法的掌握情况及数学知识的应用能力。这类题, 要求选手有较高的综合素质。下面共同探讨一下这两个方面: 技巧七:计算经典问题的重现 同一个问题,考虑的角度不一样,往往可以写出风格完全不一样,甚至算法完全不同 的程序,结果却是相同的:殊途同归。 正因为这样,有些经典问题经常会被拿出来“重写”。在读程序时,应该善于把刚刚看 到的“程序”与自己脑海里的信息进行匹配。 一旦找到自己已有信息里类似、甚至相同的问题时,面对的问题也就迎刃而解。 这些经典问题有:素数、排序、约瑟夫问题、杨辉三角、最大公约数(辗转相除法)、 高精度计算、二分法、求最短路径、拓扑排序、关键路径、欧拉回路、哈密顿回路、最小生 成树、搜索问题等等。 [选例十二 NOIP2007提高组第三题] 1 #includestdio.h 2 #includestdlib.h 3 #includemath.h 4 intmain() 5 { 6 inta1[51]={0}; 7 inti,j,t,t2,n=50; 8 for(i=2;i=sqrt(n);i++) 9 if(a1[i]==0) 10 { 11 t2=n/i; 12 for(j=2;j=t2;j++)a1[i*j]=1; 13 } 14 t=0; 15 for(i=2;i=n;i++) 16 if(a1[i]==0) 17 { 18 printf(%4d,i); t++; 19 if(t%10==0)printf(\n); 20 } 21 printf(\n); 22 23 system(pause); 24 return0; 25 } 输出: [解析]第8 行,求n 的平方根,干嘛用呢?a1[i]原来都为0,第9 至13 行循环里嵌套了第 12行循环:为什么要把i的倍数的下标变量都改为1呢? 其实,这就是经典的筛选法求素数! 第15至20行循环,输出这些素数。变量t 用来控制一行输出10个素数。因此,本例 1 6 第 页 共 页 苏州工业园区星海实验中学 输出结果为:(注意场宽、对齐) 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 [选例十三 NOIP2007提高组第四题] #includestdio.h #includestdlib.h charch[]={q,A,S,O,R,T,E,X,A,M,P,L,E}; intn=12; voidshift(intk, intn) { charv; intj; v=ch[k]; j=k+k; while(j=n) {if((jn)(ch[j]ch[j+1]))j++; if(vch[j]) { ch[j/2]=ch[j];j*=2; } else return; ch[j/2]=v; } } voidhpsrt(void) { intk; chartmp; for(k=n/2;k0; k--) shift(k,n); /* 建堆 */ printf(No.1:); for(k=1;k=n;k++) putchar(ch[k]); putchar(\n); for(k=n; k0; k--) {tmp=ch[1];ch[1]=ch[k]; ch[k]=tmp; shift(1,k-1); } } intmain() { intk;

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档