每個星期安排七個人值班a、b、c、d、e、f、g
其中1、a、b每個月只值班4次
2、 7個人輪詢值班,舉例這周值班順序為abcdeg,下周就應該是bcdefga,再下周就是cdefgab
3、要求輸入資料為年,輸出為按日歷排版的人員表。
uj5u.com熱心網友回復:
回圈7種順序排好一年,逐月檢測是否符合要求即可。uj5u.com熱心網友回復:
這要使用深度搜索演算法。uj5u.com熱心網友回復:
寫了個小程式測驗,是無解的,也可能我對樓主的問題理解有誤。
uj5u.com熱心網友回復:
你這是排班演算法,有點復雜了。。。。uj5u.com熱心網友回復:
記得很早以前接觸過編程的程式是一個列印年歷表,把這個小程式翻出來,然后把周一到周日看成是a-g,在回圈中加一個周一和周二的判斷,如果在同一個月內累計到了4次,就跳過去開始執行小回圈,即周三開始回圈,判斷月份的變化,直到月份增加時,計數清零。uj5u.com熱心網友回復:
按樓主的要求2,a、b的值班日期不是固定的周一周二,是回圈的,也就是49天之內abcdefg每人都在周一到周日各值班一天。uj5u.com熱心網友回復:
感覺沒問題,“a、b每個月只值班4次”,回圈中a、b分別計數達到四次,且月數不變時,扣除a或b后按照剩余的人數繼續回圈,如果月數增加了,就全部清零繼續回圈。邏輯判斷太麻煩,懶得寫代碼了。
uj5u.com熱心網友回復:
回圈中a、b分別計數達到四次,且月數不變時,扣除a或b后按照剩余的人數繼續回圈,如果月數增加了,就全部清零繼續剩余的回圈,到最后一個G的時候,再加上a或b項。確實太麻煩了,跳來跳去的。
uj5u.com熱心網友回復:
一看AB是特殊人物 有特權。uj5u.com熱心網友回復:
7個人輪詢值班,舉例這周值班順序為abcdeg,下周就應該是bcdefga,再下周就是cdefgab
uj5u.com熱心網友回復:
可以反過來找啊,直接先按照1234567,2345671,....這樣的方式列印一遍年歷,然后從1~7中依次查找兩個每個月最多只出現4次的元素(比方說找出來是3和5),于是指定3=a, 5=b,然后其它元素隨意分配就可以了。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/41256.html
標籤:語言基礎/算法/系統設計
