2023年12月C语言八级答案及解析.pdfVIP

  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文档。上传文档
查看更多

一、编程题

1、1.生理周期

人生来就有三个生理周期,分别为体力、感情和智力周期,它们的周期长度为23天

、28天和33天。每一个周期中有一天是高峰。在高峰这天,人会在相应的方面表现

出色。例如,智力周期的高峰,人会思维敏捷,精力容易高度集中。因为三个周期

的周长不同,所以通常三个周期的高峰不会落在同一天。对于每个人,我们想知道

何时三个高峰落在同一天。对于每个周期,我们会给出从当前年份的第一天开始,

到出现高峰的天数(不一定是第一次高峰出现的时间)。你的任务是给定一个从当

年第一天开始数的天数,输出从给定时间开始(不包括给定时间)下一次三个高峰

落在同一天的时间(距给定时间的天数)。例如:给定时间为10,下次出现三个高

峰同天的时间是12,则输出2(注意这里不是3)。

时间限制:1000

内存限制:65536

输入

一行,包含四个整数:p,e,i和d,相邻两个整数之间用单个空格隔开。p,e,

i分别表示体力、情感和智力高峰出现的时间(时间从当年的第一天开始计算)。d

是给定的时间,可能小于p,e,或i。所有给定时间是非负的并且小于等于365,

所求的时间小于等于21252。

输出

一个整数,即从给定时间起,下一次三个高峰同天的时间(距离给定时间的天数)

样例输入

4567

样例输出

16994

参考答案:16994

解析:【喵呜刷题小喵解析】:根据题目描述,我们知道体力、感情和智力三个周

期的高峰不会落在同一天,我们需要找出下一次三个高峰落在同一天的时间。题目

中给出了从当年第一天开始,到出现高峰的天数p、e、i,以及给定的时间d。我们

可以从d开始,逐步增加天数,判断何时三个高峰落在同一天。具体步骤如下:

1.

从d开始,逐步增加天数,判断体力、感情和智力三个周期的高峰是否落在同一天

2.

如果在某个天数上,体力、感情和智力三个周期的高峰都落在同一天,那么这一天

就是下一次三个高峰落在同一天的时间。

对于本题,输入为456

7,即体力周期高峰在第4天,感情周期高峰在第5天,智力周期高峰在第6天,给定

时间为第7天。我们需要从第7天开始,逐步增加天数,直到找到下一次三个高峰落

在同一天的时间。经过计算,我们发现从第7天开始,每隔23、28、33天就会出现

一个周期的高峰,即体力、感情和智力高峰分别在第20天、第32天、第42天落在同

一天。因此,下一次三个高峰落在同一天的时间是第42天,距离给定时间7天的天

数为42-

7=35天。但是题目要求输出的是从给定时间开始(不包括给定时间)下一次三个

高峰落在同一天的时间(距给定时间的天数),因此输出的结果为35-

1=34天。但是34天小于23、28、33的最小公倍数,因此继续增加天数,直到找到

下一次三个高峰落在同一天的时间。最终我们发现,从第16994天开始,体力、感

情和智力高峰都落在同一天。因此,输出结果为16994。

2、2.开关问题

有N个相同的开关,每个开关都与某些开关有着联系,每当你打开或者关闭某个开

关的时候,其他的与此开关相关联的开关也会相应地发生变化,即这些相联系的开

关的状态如果原来为开就变为关,如果为关就变为开。你的目标是经过若干次开关

操作后使得最后N个开关达到一个特定的状态。对于任意一个开关,最多只能进行

一次开关操作。你的任务是,计算有多少种可以达到指定状态的方法。(不计开关

操作的顺序)

时间限制:1000

内存限制:65536

输入

输入第一行有一个数K,表示以下有K组测试数据。每组测试数据的格式如下:

第一行一个数N(0N29)第二行

N个0或者1的数,表示开始时N个开关状态。第三行

N个0或者1的数,表示操作结束后N个开关的状态。接下来每行两个数I

J,表示如果操作第I个开关,第J个开关的状态也会变化。每组数据以00结束。

输出

如果有可行方法,输出总数,否则输出“Oh,itsimpossible~!!”不包括引号

样例输入

2

3

000

111

12

13

21

23

31

32

00

3

000

101

12

21

00

样例输出

4

Oh,itsimpossible~!!

提示

第一组数据的说明:一共以下四种方法:操作开关1操作开关2操作开关3操作开

关1、2、3(不记顺序)

参考答案:对于每组测试数据,我们需要先检查给定的开关状态是否满足要求。即

对于每个开关i,如果它的状态

文档评论(0)

喵呜刷题 + 关注
实名认证
文档贡献者

来喵呜刷题,完成你的职业蜕变!

1亿VIP精品文档

相关文档