- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
问题1
输入一个年号,判断它是否是闰年。 分析:判断闰年的算法是:如果此年号能被400除尽, 或者它能被4整除而不能被100整除,则它是闰年。否则,它是平年。 源程序如下: program ex; var year:integer; begin write(Input year:);readln(year); write(year:6); if (year mod 400=0 ) then writeln(is a leap year.) else if (year mod 4=0)and(year mod 1000) then writeln(is a leap year.) else writeln(is not a leap year.); end.
问题2
判断1995年,每个月份的天数。 分析:程序分为:输入月份,计算该月的天数,输出天数 源程序如下: program days; var month,days:integer; begin write(Input month:);readln(month); case month of 1,3,5,7,8,10,12:days:=31; 4,6,9,11 :days:=30; 2 :days:=28; else days:=0; end; if days0 then writeln(Days=,days); end.
问题3
期未来临了,班长小Q决定将剩余班费X元钱,用于购买若干支钢笔奖励给一些学习好、表现好的同学。已知商店里有三种钢笔,它们的单价为6元、5元和4元。小Q想买尽量多的笔(鼓励尽量多的同学),同时他又不想有剩余钱。请您编一程序,帮小Q制订出一种买笔的方案。 分析:对于以上的实际问题,要买尽量多的笔,易知都买4元的笔肯定可以买最多支笔。因此最多可买的笔为x div 4支。由于小q要把钱用完,故我们可以按以下方法将钱用完: 若买完x div 4支4元钱的笔,还剩1元,则4元钱的笔少买1支,换成一支5元笔即可;若买完x div 4支4元钱的笔,还剩2元,则4元钱的笔少买1支,换成一支6元笔即可;若买完x div 4支4元钱的笔,还剩3元,则4元钱的笔少买2支,换成一支5元笔和一支6元笔即可。 从以上对买笔方案的调整,可以看出笔的数目都是x div 4,因此该方案的确为最优方案。
源程序如下: program pen; var a,b,c:integer;{a,b,c分别表示在买笔方案中,6元、5元和4元钱笔的数目} x,y:integer;{x,y分别表示剩余班费和买完最多的4元笔后剩的钱} begin write(x=);readln(x){输入x} c:=x div 4;{4元笔最多买的数目} y:=x mod 4;{求买完c支4元笔后剩余的钱数y} case y of 0 : begin a:=0;b:=0; end; 1 : begin a:=0;b:=1;c:=c-1; end; 2 : begin a:=1;b:=0; c:=c-1;end; 3 : begin a:=1;b:=1; c:=c-2;end; end; writeln(a=,a,b=,b,c=,c); end. 问题4
求N!=1*2*3*…*N ,这里N不大于10。 分析:程序要先输入N,然后从1累乘到N。 程序如下: var n,i : integer;{i为循环变量} S : longint;{s作为累乘器} begin write(Enter n=);readln(n);{输入n} s:=1; for i:=2 to n do{从2到n累乘到s中} s:=s*i; writeln(n,!=,s);{输出n!的值} end.
问题5
求恰好使s=1+1/2+1/3+…+1/n的值大于10时n的值。 分析:恰好使s的值大于10意思是当表达式s的前n-1项的和小于或等于10,而加上了第n项后s的值大于10。从数学角度,我们很难计算这个n的值。故从第一项开始,当s的值小于或等于10时,就继续将下一项值累加起来。当s的值超过10时,最后一项的项数即为要求的n。 程序如下: var s : real; n : integer;{n表示项数} begin s:=0.0;n:=0
文档评论(0)