0

12 か月までの稼働日数である整数 N をできるだけ均等に分割したいので、2、3、4、5、6 か月のいずれかの期間をとっても、稼働日は可能な限り均等に分割されます。その期間に。講師は、ある種の切り上げアルゴリズムを使用する必要があると言いましたが、何も思いつきません。アルゴリズムの提案やリンクは非常に役立ちます。

4

2 に答える 2

2

k一部の月にはk稼働日が含まれ、他の月には が含まれるように数字を選択する必要がありますk+1。これは、勤務日を分割せずに均等に分割することができるのと同じくらいです。それらの月数はk+1、12 を法とする N に等しくなります (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 に答える