NOJ [1271] Nth Day is Which Day

来源:互联网 发布:百度派 知乎 编辑:程序博客网 时间:2024/06/01 10:40
链接地址: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届的新生们努力啊。代码就不贴了、
0 0
原创粉丝点击