NOJ [1271] Nth Day is Which Day

本文介绍了一种简化闰年计算的方法,通过四步操作将大数字控制在一年内,便于快速解决复杂的日期问题。
链接地址:http://ac.nbutoj.com/Problem/view.xhtml?id=1271

本体纯数学题
如果对于输入的数据直接for循环,肯定超时
所以,我们得缩小运算量、
该怎么办呢?
输入的N为第几天。
那么,我们可以先这样想:每400年就会出现97个闰年,400年就是146097天。我们可以先对146097求余,得到的数就是小于146097的,也就是在400年内。
那么,接下来,在剩下的小于400年的里面肯定不会出现是400的整数倍的年份。那么,每100年就会有24个闰年,100年也就是36524天。我们对36524求余,得到的数就是小于36524的,也就是在100年内了。
接着,在剩下的小于100年的里面肯定不会出现100的整数倍的年份。那么,每4年就会有一个闰年,4年也就是1461天。我们对1461求余,得到的数就是小于1461的,也就是在4年了。
然后,在剩下的小于4年的里面,前三年肯定不会出现闰年。我们对365求余,剩下来的数肯定是小于365的。
你看,我们只要简单的四个步骤就把那么大的一个数字控制在1年内了。
在把最后的一年计算一下就可以了(注意区分该年是闰年还是平年哦)。

此题还需12届的新生们努力啊。代码就不贴了、
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值