2023年09月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

```

参考答案:首先,我们计算智力、感情和体力周期高峰分别出现在哪一天。对于智

力周期,高峰出现的时间为:智力周期高峰时间=d+(33-(d%33))%

33对于感情周期,高峰出现的时间为:感情周期高峰时间=d+(28-(d%28))%

28对于体力周期,高峰出现的时间为:体力周期高峰时间=d+(23-(d%23))%

23然后,我们找到这三个高峰时间中最早的一天,记为min_day。最后,我们计算

从给定时间到min_day的天数,即为所求结果。

解析:【喵呜刷题小喵解析】:

本题是一道关于时间周期和计算的问题。首先,我们需要理解题目中的三个周期:

体力、感情和智力周期,它们的周期长度分别为23天、28天和33天。每一个周期中

有一天是高峰,高峰这天,人会在相应的方面表现出色。

根据题目,我们需要计算从给定时间开始,下一次三个高峰落在同一天的时间(距

离给定时间的天数)。

首先,我们需要找到智力、感情和体力周期高峰分别出现在哪一天。由于每个周期

的高峰不会落在同一天,我们需要分别计算每个周期的高峰时间。

对于智力周期,高峰出现的时间为:智力周期高峰时间=d+(33-(d%33))%33

对于感情周期,高峰出现的时间为:感情周期高峰时间=d+(28-(d%28))%28

对于体力周期,高峰出现的时间为:体力周期高峰时间=d+(23-(d%23))%23

然后,我们需要找到这三个高峰时间中最早的一天,记为min_day。这是因为我们

需要找出下一次三个高峰落在同一天的时间,这个时间就是min_day。

最后,我们计算从给定时间到min_day的天数,即为所求结果。

注意,在计算周期高峰时间时,我们需要使用取模运算来确保结果在周期内。这是

因为给定时间可能是周期的任意一天,我们需要找出距离给定时间最近的下一个高

峰时间。

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

文档评论(0)

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

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

1亿VIP精品文档

相关文档