0

我想将整数 N(即工作日数)除以 12 个月,因此如果我选择 2、3、4、5、6 个月的任何时间段,则工作日仍会尽可能均等地划分在那个时期。讲师说我必须使用某种四舍五入算法,但是我什么都想不到。任何算法建议或链接都​​会有很大帮助。

4

2 回答 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 回答