一共5个人 ,早班一人 午班一人 晚班两人 周末晚班3人
一个星期换一次班
周一到周五每人休息一次 例如早班休息 中班顶上,中班休息晚班顶上
一个星期换一次班
周一到周五每人休息一次 例如早班休息 中班顶上,中班休息晚班顶上
解决方案
60
一共就5个人,这都不能成为“算法”了吧,你觉得它简单,就真的简单了。
拿张草稿纸演算一下,假如不考虑编程,你会怎么排?
拿张草稿纸演算一下,假如不考虑编程,你会怎么排?
70
string[] peoples = Enumerable.Range(1, 5).Select(n => string.Format("P{0}", n)).ToArray(); for (var i = 0; i < 7; i++) { Console.WriteLine("*******周{0}排班**********", i + 1); var tmp = peoples; if(i<peoples.Length) { Console.WriteLine("{1}休息", i + 1, peoples[i]); tmp = peoples.Where(p => p != peoples[i]).ToArray(); } Console.WriteLine("早班{0} 中班{1} 晚班{2}", tmp[0], tmp[1], string.Join(",", tmp.Skip(2))); } //轮班就是将第一位移到最后一位
轮班给你注释了,你应该本人写