我想将整数 N(即工作日数)除以 12 个月,因此如果我选择 2、3、4、5、6 个月的任何时间段,则工作日仍会尽可能均等地划分在那个时期。讲师说我必须使用某种四舍五入算法,但是我什么都想不到。任何算法建议或链接都会有很大帮助。
问问题
1172 次
2 回答
2
您需要选择一个数字k
,以便其中一些月份包含k
工作日,而其他月份则包含k+1
. 在不拆分工作日的情况下,这是尽可能接近平等分配的方式。其中的月数k+1
等于 N 模 12(N % 12
在许多编程语言中)。
于 2012-10-22T14:09:51.573 回答
1
您从每月至少需要工作多少天开始:
days = floor(N / 12)
(其中 floor(...) 表示向下舍入。)
然后你有一些剩余:
remainder = N % 12
(其中 % 表示模数)
请注意,余数肯定小于 12,因为我们使用了模
因此,将这些剩余的日子分布在 12 个月内,随心所欲。
(请注意,这种方法可以推广到任意月份,只需替换我们上面使用 12 的月份数)
于 2012-10-22T14:13:15.223 回答