信息学奥赛阶段性自测二及题解.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
信息学奥赛阶段性自测二 时间:20□年4月15日 目的:自我检查、巩固、查缺补漏、独立分析思考、总结积累经验 要求:独立完成,使用文件进行输入输出,最后将程序文件(上pas)捉交到空间上。 【题目一】冋环矩阵 生成一个按回环方式排列自然数1, 2, 3, 4, 5,……,2的N(lNW10)阶方阵。 输入文件:huihuanjuzhen. in 其中仅包含一行,一个数据N; 输出文件:huihuanjuzhen. out 其中是一个包含N行N列的方阵,每个数值的场宽为6 程序名称:huihuanjuzhen. pas 样例1: 输入: 4 输出: 1 3 4 10 2 5 9 11 6 8 12 15 7 13 14 16 样例2: 输入: 分析及参考程序:[解]本题考查重点是矩阵的表示及 上下标运算,旨在培养观察和 分析思维能力。例如,当N=7时, 分析及参考程序: [解]本题考查重点是矩阵的表示及 上下标运算,旨在培养观察和 分析思维能力。 例如,当N=7时,把1, 2, 3,……,49逐一填入数组 A中,搜索填数的方向如右图示: 15 16 27 28 — 29 ■4 1O - / / £ 9 12 产 / “ 13 19 / ? 18 25 产 / / 26 31 / / / 30 38 22 34 35 ?43 4-4 输出: 1 3 4 10 11 21 22 2 5 9 12 20 23 34 6 8 13 19 24 33 35 7 14 18 25 32 36 43 15 17 26 31 37 42 44 16 27 30 38 41 45 48 28 29 39 40 46 47 49 ?N*N)来说,可能按以下四种从图屮,我们可以看出:对每个数字m( ?N*N)来说,可能按以下四种 d=2(当 j=l)/ 3 d=2(当 j=l) / 3 、 d二4(当 j=N) ? d-3 (向右) d 二4 U (左下) 1 d=l (向下) 按照图10-1的搜索方向填数时,先要把当前数字m填入数组A[i, j]中,接下來就是要 确定下一次的填数的坐标及其搜索方向(即d=?)o现分析如下: 第一种情形(d=l,如 m=2,7, 15; 35, 44): (i-l, d二3(当 (i-l, d二3(当 i二 1) (1=1(当 j=N) i,j) 第二种情形(d=2,如 m=2, 10,21;或 34, 43, 48;或 7, 8, 9,16,17,18,19 等): cL2(当 i〉l 且 jON) 第三种情形(d二3,如 m二29, 40, 47;或 4, 11,22): d=3 / d=2(当匸N) 第三种情形 (i,J)_ (i,j+1) / d=4(当 j=N) (i, 第四种情形(d=4,如 m二2 39,46;或 6,15;或 5, 12, 13, 14 等): (i+1, j ——? d (i+1, j ——? d二3(当 i二 1) cM(当 i=N J@L jOl) [程序] Program she; const max=10; var d) jrn,N:integer; A:array [1..10,1..10] of integer; begin write(N=);readln(N); if (N=1) and (N=max) then begin i:=l;j:=l;m:=l;d:=l; repeat A[izj]:=m; {填数} begin write(N=);readln(N); if (N=1) and (N=max) then begin i:=l;j:=l;m:=l;d:=l; repeat A[izj]:=m; {填数} case d of 1: {第一种情形}begin i:=i+l; if j=l then d:=2 else d:=4; end; 2: {第二种情形Jbegin i:=i-l;j:=j+l; if j=N then d:=l else if i=l then d:=3;end; 3: {第三种情形}begin j:=j+l; if i=N then d:=2 else d:=4;end; 4: {第三种情形}begin i:=i+l;j:=j-l; 讦 i二N then d:=3 else if j=l then d:=l;end; end; m:=m+l; until mN*N; writelnCOUTPUT:1); for i:=l to N do begin for j:=l to N do write(A[ij]:4); {输出填数} writeln;end; end else writeln(lnput N error!); end.

文档评论(0)

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

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

1亿VIP精品文档

相关文档