我想将一个整数N,即一个工作日分为12个月,尽可能平均分配,所以如果我采取任何2,3,4,5,6个月的工作日,工作日仍然分为在那个时期尽可能平等。讲师说我必须使用某种舍入算法,但是我想不出什么。任何算法建议或链接都会有很大帮助。
答案 0 :(得分:2)
您需要选择一个号码k
,以便某些月份中有k
个工作日,其他月份为k+1
。这就像你可以在没有分割工作日的情况下达到平分。 k+1
中包含N % 12
的月数等于N模12(在许多编程语言中为{{1}})。
答案 1 :(得分:1)
您首先需要每月工作多少天:
days = floor(N / 12)
(其中(......)表示向下舍入。)
然后你还剩下一些:
remainder = N % 12
(其中%表示模数)
请注意,余数肯定小于12,因为我们使用了模数
所以在你喜欢的12个月内将这些剩余天数分散开来。
(注意这种方法可以概括为任意数月,只需替换上述12个月的#月数)