ZZNU17级新生周赛第二场

来源:互联网 发布:做金融好还是数据好 编辑:程序博客网 时间:2024/06/05 04:48
A题:

我们知道国王给ZZH的令牌可以叠加使用。
所以,当有一天,ZZH手上的所有令牌调用的骑士加上ZZH自己的战斗力和大于巨龙当天的体力值时,就可以在当天救出公主。
定义sum
代表如果ZZH使用现有所有令牌后具有的战斗力和。
sum初始值为2,因为一开始ZZH没有令牌,他自身的战斗力为2。
定义ans
用于存储战胜巨龙的那一天。
ans初始值为0
我们利用循环来模拟这n天。
每天读取一个x,x表示当天国王所给令牌能调用的骑士数。
接着让sum加上x。表示如果ZZH当天使用所有已有的令牌所具有的战斗力。
拿sum和当天巨龙的体力值作比较。大于,就用ans保存当天是第几天。如果小于或等于巨龙体力值,说明当天无法战胜巨龙,当天不会使用任何令牌。
注意题目给的是巨龙第一天的体力值,巨龙每天恢复h点体力,所以每次循环末尾要给巨龙体力值加上h。

循环结束后判断ans
ans==0代表这n天,ZZH都不能救出公主。输出"ZZH will die!"
其余情况直接输出ans表示救出公主是在第几天。

代码链接:http://paste.ubuntu.com/25822093/

B题:

我们可以把题目中的四个人分成两类人。
付钱的:欠的钱比借出去的钱多的人
拿钱的:借出去的钱比欠的钱多的人

我们只需要分析付钱的人(或拿钱的人)一共付(得)了多少钱,就知道四个人清账需要流通的最少钱数了。

付钱的人付的钱 =拿钱的人得的钱

我们可以同时计算付钱的人要付的钱和拿钱的人得的钱。结果除以2就是答案。

代码链接:http://paste.ubuntu.com/25822273/

C题:

注意两点。
1.输入的两个整数,可能生年在前卒年在后,也可能卒年在前生年在后。
2.不存在公元0年。如果一个人生于公元前1年,死于公元1年,那么这个人只活了1岁。

所以我们对于同号的两个整数,求出整数差的绝对值输出即可。
对于不同号的两个整数,因为不存在公元0年,所以我们求出整数差的绝对值再减去1,才是正确结果。
代码链接:http://paste.ubuntu.com/25822291/

D题:

既是偶数又是质数的数只有2.
所以判断,如果n到m 的范围里含有2,直接输出2;
如果不含2 输出MDZZ!
代码链接:http://paste.ubuntu.com/25822777/

E题:

考察条件语句。
如果是输入月份是4,6,9,11直接输出30.
如果输入月份是2,判断是否为闰年,是的话输出29,否则输出28.
其余情况输出31

代码链接:http://paste.ubuntu.com/25822328/

F题:

打印题。
需要观察规律。

代码链接:http://paste.ubuntu.com/25822452/