开发者社区> 问答> 正文

遇到一个模拟问题,求解答

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)输出使时钟正常显示一共要调整的次数。

展开
收起
游客4skzfvnrxrzbi 2021-12-23 17:13:12 363 0
1 条回答
写回答
取消 提交回答
  • 本题关键在于理解题意: 题干的含义是,在除去最后一个月后,其余每个月的最后一天的24点时,时钟上的逻辑时间会超过那个月的最大天数,同时实际时间变为下一个月的第1天。此时逻辑时间和实际时间有差别,需要调整时钟,让逻辑时间重新回到 1,使其符合实际时间。如题中例子所指: image.png ● 第 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

    2021-12-23 18:59:30
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载