一尘不染

计算13日星期五的未来发生次数

algorithm

我希望可以从一年开始,并计算13日星期五的发生次数。暴力解决方案很容易并且很明显。我有一些更好的东西,但是毫无疑问,其他人可以为此提出一个优雅的算法。

也许有点棘手,我想给该计划一个月的时间,让它找到下个月的那个月的下一个星期五,即13日。

可以随意使用伪代码,但是我希望人们会以您喜欢的语言为工作代码示例投票更多。


阅读 249

收藏
2020-07-28

共1个答案

一尘不染

从星期日开始的任何月份的第13个星期五。只有14种组合可以知道一年的第一天(有或没有with年,以及周日)。您只需要计算一次就可以了。您只需要检查14 * 12个月就可以开始,这是有道理的。

结果表格元素(来自2009年,2010年):

[Thursday,false] => Feb, March, Nov
[Friday,false] => Aug

要填充表,您需要一个通用月份Jan(31),Feb(28)..然后使用一周中每一天的种子进行迭代,注意从星期日开始的月份,也可以有with年,也可以没有without年。非常简单,一旦完成,您就可以与我们分享:)

2020-07-28