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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

PASCAL竞赛辅导习题二 问题1Word文档下载推荐.docx

1、厂的代表说:厂的产品质量最次。厂的代表说:厂的产品不是最好的。厂的代表说:厂的产品会获得第一名。公布结果后,证明只有产品获第一名和第二名的两个厂的代表猜对了。 求个厂产品各获第几名。【答案】 if (e2) and (e3) and (a*b*c*d*e=120) thenif(ord(e=1)+ord(b=2)+ord(a=5)+ord(c1)+ ord(d=1)=2) and(ord(e=1) and (a=1) or (a=2)+ord(b=2) and (b=1) or (b=2)+ord(a=5) and (c=1) or (c=2)+ord(c1) and (d=1) or (d=

2、2)+ord(d=1) and (e=1) or (e=2)=2) then b: c: d: e:问题3逻辑判断v谁是小偷a问题av谁获冠军?a问题av猜测产品质量评奖a问题a问题【问题】有、四名偷窃嫌疑犯,其中一人是小偷,审问中,说:“我 不是小偷”,说:“是小偷”,说:“小偷肯定是”,说:“ 在冤枉人”,有三人说真话,一人说假话,问到底谁是小偷?var thief:char;for thief:=A to D doif ord(thief)+ord(thief=C)+ord(thief) and (zimu9 then write(chr(aj+55) 如果大于,用字母输出 else w

3、rite(aj);),n);readln;问题6进制2【题目】把n进制的数化回十进制表示如 (10101)2=(21)10var cf,s,i,j,n:string20;array1.20 of byte; 用字符串接收要转换的数=1 to length(m) do begin 把字符串换成数字,注意字母时的情况 if (mi0) then ai:=ord(mi)-48;if (upcase(mi)=ord(upcase(mi)-55;if ai=n then begin Error, Invaild m !halt;如果含有不在n进制内的字符,则判为出错。如进制的数,则不应 出现诸如1010

4、2,110031210等情况cf:=1; s:=alength(m); cf:乘方=length(m)-1 downto 1 do begin 从低位向高位,逐步转换 cf:=cf*n; s记录得出来的数 s:=s+ai*cf;(,m,n,s);问题7进制3【题目】任意进制间的互化。把n进制的转化成k进制表示如m=ff n=16 k=2则有 (ff)16=(11111111)2var s,n,k:procedure first(m:string;n:integer); 把数m化成十进制var cf,i,j:=1 to length(m) do begin) then ai:=n then be

5、gin writeln( end;=length(m)-1 downto 1 do begins:,s,)10procedure second(m,n:longint); 把十进制的数化成k进制 var i,j:9 then write(chr(aj+55)else write(aj);input m,n,k: m:数, n:原先进制, k:化成什么进制 readln(m,n,k);first(m,n); 把n进制的m化成十进制数second(s,k); 把化成k进制问题8钞票换硬币【题目】把一元钞票换成一分、二分、五分硬币(每种至少一枚),有哪些种换法?【答案】461种var i,j,k,t

6、otal:integer;total: 总数设为=1 to 99 do i:二分硬币最多99枚=1 to 49 do j:二分硬币最多49枚for k:=1 to 19 do k:五分硬币最多19枚if i*1+j*2+k*5=100 then writeln(i:3,j:3,k:3);inc(total); 总数加writeln(total);问题9百钱买百鸡【题目】一只公鸡值元,一只母鸡值元,只小鸡值元,现用一百元要买一百只鸡, 问有什么方案?【答案】四种方案:公鸡 母鸡 小鸡 问题10分书问题【题目】有、五本书,要分给张、王、刘、 赵、钱五位同学,每人只能选一本, 事先让每人把自 己喜爱

7、的书法填于右表,编程找出让每人都满意的方 案。 张 【答案】四种方案 王 张 王 刘 赵 钱 【参考程序】var z,w,l,zh,q,total: procedure output;zhang:,chr(z+64); writeln(wang:,chr(w+64);liu :,chr(l+64);zhao:,chr(zh+64);qian:,chr(q+64); writeln; inc(total);for z:=3 to 4 dofor w:if (w3) and (w4) then刘 赵 钱 for l:=2 to 3 dofor zh:=1 to 4 doif zh3 thenfor

8、 q:=2 to 5 doif (q3) and (q4) then beginif z+w+l+zh+q=15 thenif z*w*l*zh*q=120 then output;write(total);问题11筛选法【题目】统计楼梯级数。一步跨二级多一级,一步跨三级多二级,如果分别用四、五、六、 七去除级数分别余三、三、五、五。要求用筛选法求这个楼梯最少有多少级。【答案】级【参考程序】var a:array1.1000of boolean;array1.10 of integer;k,i,n,t:=2 to 1000 do ai:=true;=2;t:b1:b2:b3:=3;b4:b5:

9、=5;b6: 表示各种跨法的余数=2 to 1000 do 每一次筛选都从头到尾if ak=true thenif (k-bt)mod n7; 一共筛7次=2 to 1000 do if ai=true then begin write(i:5); halt;【参考程序】const max=1000;var i:array1.maxof 0.7; repeat =i+2;=ai+1;until imax; 一步跨二级 i: repeat =i+3; until i 三 i: repeat i:=i+4; 四 i:=i+5; 五 i:=i+6; 六 i:=i+7; 七 for i:=1 to m

10、ax do if (ai=6) then begin writeln(i); end. 跨了6次的梯级便为所求【参考程序】 程序是程序的精简,具有比程序更好的通用性。 const max=1000;array2.7 of byte =(1,2,3,3,5,5); 各种跨法剩余的级数 var i,j: 置初值=2 to 7 do begin 从2级到7级=bj;=i+j; 每一次可能跨到的级数 某级跨到一次,记录一次 从头跨到尾=1 to max doif (ai=6) then 跨了6次的梯级便为所求begin writeln(i); 找到第一个满足条件的便可结束程序 end.问题12求最大公

11、约数【题目】求两个正整数的最大公约数【算法】用辗转相除法 (参看40例3)var m,n,r,t:if (n=0) or (m=0) then begin writeln(error!if mn then begin t:=m;=n;=t; 大数放m,小数放n r:=m mod n; r:余数while r0 do begin=r;r:yu shu:问题13素数【问题】任给一个自然数n,求出这个自然数不同因数的个数。例如 n=6时,因为1,2,3,6这四个数均是的因数,故输出为total=。【算法】类似判断素数的方法。如果发现n有一个sqr()的因数,必然同时有一个sqr(n)的因数。 例如:

12、有一个因数,则必有另一因数。因为*36var n,nums,k,i:input n:readln(n);if n0!0;k:=trunc(sqrt(n);nums:=2 to k doif n mod i=0 then nums:=nums+2;if n=sqr(k) then dec(nums);,nums);问题14万年历【题目】输入年、月、日,求这一天是星期几。【算法提要】求出这一天离公元年的元旦有多少天days,然后对7求余 constfirst=1; 公元年为基准first_week=1; 公元年的元旦为星期一yue:array1.12 of 1.31=(31,28,31,30,31

13、,30,31,31,30,31,30,31);week_:array0.6 of string20 =(Sunday,MondayTuesdayWedsday, ThursdayFridaySaturdayvardays,week,year,month,date,i,years:year:readln(year);monthreadln(month);datereadln(date);years: days:=first to year-1 doif (i mod 400=0) or (i mod 4=0) and (i mod 1000) thenbegin years:=years+1;

14、注意处理闰年的情况days:=(year-first)*365+years; 离基准年过了多少天=1 to month-1 do days:=days+yuei; 本年过了多少个月=1 to date do days:=days+1; 本月过了多少天if (year mod 400=0) or (year mod 4=0) and (year mod 1003) then days: 如果本年为闰年,且月份超月, 还要考虑加week:=(days-1) mod 7 +first_week ) mod 7; 求星期数it is ,week_week);【参考程序】 用公式法:=trunc(yea

15、r-1)*(1+1/4-1/100+1/400)+c)用求出的days对求余数。其中c为该天离该年元旦的天数 constdays,week,year,month,date,i:0) and (month=trunc(year-1)*(1+1/4-1/100+1/400)+days);=days mod 7;问题15猴子选大王【问题】n只猴子选大王,选举办法如下:从头到尾,报数,凡报的退出, 余下的从尾到头,报数,凡报的退出如此类推,当剩下两 只猴子时,取这时报的为王,若想当猴王,请问当初应占据什么位置?【测试数据】n 7 1020100 位置2 816 77 const number=3;var n,num,i,total:array1.100of boolean; order:boolean; 队伍中剩下的猴子数=1 to n do ai:order: order=true:顺序报数num: num:报的数字for i

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

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