B同学有一个时钟,能够显示1-d,初始值为1。这个时钟每天显示的数字加一,特殊的,当某天显示的值为 d 时,第二天就会显示 1。但是每个月的时间并不总是 d 天,因此 B 同学就要通过手动调整使得显示的时间正确,每次手调都可以使显示数字加一。现在给你 n 个月每月的天数,请你计算一下若是让时钟每天显示的数字都是正确的,他这 n 个月一共需要调多少次时钟。输入月份数 n(1 <= n<= 10^5)、时钟的最大显示时间d(1<=d<=10^4)和一个包含 n 个数的数组,第 i 个数表示第 i 个月有 ai 天(1<=ai<=d)输出使时钟正常显示一共要调整的次数。
本题关键在于理解题意: 题干的含义是,在除去最后一个月后,其余每个月的最后一天的24点时,时钟上的逻辑时间会超过那个月的最大天数,同时实际时间变为下一个月的第1天。此时逻辑时间和实际时间有差别,需要调整时钟,让逻辑时间重新回到 1,使其符合实际时间。如题中例子所指: ● 第 1 个月第 1 天,时钟实际值 1,符合; ● 第 1 个月第 2 天,时钟实际值 2,符合; ● 第 1 个月第 3 天,时钟实际值 3,符合; ● 第 2 个月第 1 天,时钟实际值 4,不符合,对时钟进行 2 次加 1 操作,时钟实际值变为 1,符合; ● ...... ● 第 3 个月第 1 天,时钟实际值 5,不符合,对时钟进行 1 次加 1 操作,时钟实际值变为 1,符合; ● ...... ● 第 3 个月第 3 天,时钟实际值 3,符合; ● 结束,共需要调整 3 次。 因此输入:3 5 [3,4,3] 输出:3
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。