算法设计题集(整理稿).doc

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法设计题集(整理稿)

信息学奥赛,一条通向成功之门的幽径。 学校: 姓名: 班级: 枚举搜索 枚举指的是从可能的解的集合中一一枚举各元素,用题目给定的检验条件判断哪些是无用的,哪些是有用的,能使命题成立即为其解。 一般思路:a、对命题建立正确的数学模型,b、根据命题确定数学模型中各变量的范围(即可能解的范围),c、利用循环语句、条件语句逐步求解或证明。 1、枚举数字【题目】编程找出四位数abcd中满足下述关系的数: (ab+cd)(ab+cd)=abcd 【算法】搜索问题:1000—9999 关键是边枚举边分离高位、低位,后判断 var: I,m,n,k:integer; begin for I:=1000 to 9999 do begin m:=I div 100; n:=I-m*100; k:=(m+n)*(m+n); if k:=I then writeln(I); end; end. 2、钞票换硬币【题目】把一元钞票换成一分、二分、五分硬币(每种至少一枚),有哪些种换法? 【答案】461种 【参考程序】 var i,j,k,total:integer; begin total:=0; {总数设为0} for i:=1 to 99 do {i:二分硬币最多99枚} for j:=1 to 49 do {j:二分硬币最多49枚} for k:=1 to 19 do {k:五分硬币最多19枚} if i*1+j*2+k*5=100 then begin writeln(i:3,j:3,k:3); inc(total); {总数加1} end; writeln(total); readln; end. 逻辑判断 【逻辑判断】根据条件利用取值函数ord对条件进行取值,然后利用循环语句穷举。 5、谁是小偷【题目】有A、B、C、D四名偷窃嫌疑犯,其中一人是小偷,审问中,A说:“我 不是小偷”,B说:“C是小偷”,C说:“小偷肯定是D”,D说:“C 在冤枉人”,有三人说真话,一人说假话,问到底谁是小偷? 【参考程序】 var thief:char; begin for thief:=A to D do if ord(thiefA)+ord(thief=C)+ord(thief=D)+ ord(thiefD)=3 then writeln(The Thief is : ,thief); end. 6、质量评比 【题目】5家工厂的产品在一次评比中分获1,2,3,4,5,在公布结果前,已知E 厂产品肯定不是第二、三名,五厂代表猜测评比结果, A厂的代表说:E厂一定能获得第一名。 B厂的代表说:我厂的产品可能获第二名。 C厂的代表说:A厂的产品质量最次。 D厂的代表说:C厂的产品不是最好的。 E厂的代表说:D厂的产品会获得第一名。 公布结果后,证明只有产品获第一名和第二名的两个厂的代表猜对了。 求5个厂产品各获第几名。 【答案】 A B C D E 5 2 1 3 4 【参考程序】 var a,b,c,d,e:byte; begin for a:=1 to 5 do for b:=1 to 5 do for c:=1 to 5 do for d:=1 to 5 do begin e:=15-a-b-c-d;

文档评论(0)

wuyuetian + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档