考虑二分年份mid,考察mid.1.1距离BC 4713.1.1的距离,剩余的日期我们暴力跳
问题转化为了算mid年到BC 4713年的总天数
这里有一个trick就是我们先把公元前的年份往前平移一年,即把BC 4713到BC 1年,平移到 4712到0年,最后算完年份再减一下,这样计算会方便很多
那么则有 总天数=365×年数(也就是mid+4712)+闰年数量-10×[mid>1582]
对于闰年数量,就不用讲了,都会计算
那就算完了,注意long long以及二分边界即可。
AC代码
欢迎加入团队