将数字平均分成12个整数

时间:2012-10-22 14:05:25

标签: algorithm

我想将一个整数N,即一个工作日分为12个月,尽可能平均分配,所以如果我采取任何2,3,4,5,6个月的工作日,工作日仍然分为在那个时期尽可能平等。讲师说我必须使用某种舍入算法,但是我想不出什么。任何算法建议或链接都​​会有很大帮助。

2 个答案:

答案 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个月的#月数)