第六届程序设计比赛题目与答.doc

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一、鸡兔同笼 问题描述 一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物 输入数据 第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a (a 32768)。 输出要求 n行,每行输出对应一个输入。输出是两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数用空格分开。如果没有满足要求的情况出现,则输出2个0。 输入样例 2 3 20 输出样例 0 0 5 10 解题思路 这个问题可以描述成任给一个整数N,如果N是奇数,输出0 0,否则如果N是4的倍数,输出N / 4 N / 2,如果N不是4的倍数,输出N/4+1 N/2。这是一个一般的计算题,只要实现相应的判断和输出代码就可以了。题目中说明了输入整数在一个比较小的范围内,所以只需要考虑整数运算就可以了。 参考程序 #include stdio.h void main( ) { int nCases, i, nFeet; //nCases 表示输入测试数据的组数,nFeet表示输入的脚数。 scanf(%d, nCases); for(i = 0; i nCases; i++){ scanf(%d, nFeet); if(nFeet %2 != 0) // 如果有奇数只脚,则输入不正确, // 因为不论2只还是4只,都是偶数 printf(0 0\n); else if (nFeet%4 != 0) //若要动物数目最少,使动物尽量有4只脚 //若要动物数目最多,使动物尽量有2只脚 printf(%d %d\n, nFeet / 4 + 1, nFeet / 2); else printf(%d %d\n, nFeet / 4, nFeet / 2); } } 二、判断闰年 问题描述 判断某年是否是闰年公历纪年法中,能被4整除的大多是闰年,但能被100整除而不能被400整除的年份不是闰年,如1900年是平年,2000年是闰年。一行,仅含一个整数a(0 a 3000)一行,如果公元a年是闰年输出Y,否则输出N– 分段排除: 如果a % 4 ! = 0,则a不是闰年; 否则如果a % 100 == 0 a % 400 != 0,则a不是闰年; 否则a是闰年。 参考解法二 – 列出所有闰年的可能条件,满足条件则为闰年,否则判为非闰年: 如果 (a % 400 == 0 || (a % 4 == 0 a % 100 != 0)), 则a是闰年;否则 a不是闰年。 参考程序一: #include stdio.h void main() { int a; //记录待判定的年份 scanf(%d, a); if(a % 4 != 0) printf(N\n); else if(a % 100 == 0 a % 400 != 0) printf(N\n); else printf(Y\n); } 参考程序二: #include stdio.h void main(){ int a; scanf(%d, a); if((a % 4 == 0 a % 100 != 0) || a % 400 == 0) printf(Y\n); else printf(N\n); } 三、细菌繁殖 问题描述 一种细菌的繁殖速度是每天成倍增长。例如:第一天有10个,第二天就变成20个,第三天变成40个,第四天变成80个,……。现在给出第一天的日期和细菌数目,要你写程序求出到某一天的时候,细菌的数目。第一行有一个整数n,表示测试数据的数目。其后n行每行有5个整数,整数之间用一个空格隔开。第一个数表示第一天的月份,第二个数表示第一天的日期,第三个数表示第一天细菌的数目,第四个数表示要求的那一天的月份,第五个数表示要求的那一天的日期。已知第一天和要求的一天在同一年并且该年不是闰年,要求的一天一定在第一天之后。数据保证要求的一天的细菌数目在整数范围内。对于每一组测试数据,输出一行,该行包含一个整数,为要求的一天的细菌数。2 1 1 1 1 2 2 28 10 3 2 输出样例 2 40 解题思路 这题实际上是求给定的两天之间间隔的天数n,第一天的细菌数乘以2的n次方就是题目的答案。每个月的天数因为不很规则,如果在程序中用规则描述

文档评论(0)

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

1亿VIP精品文档

相关文档