车厢调度问题描述如下:编号为 1, 2, …, n 的 n 节车厢依次从 A 方向驶入,从 B 方向驶 出,一旦车厢驶入车站就不能再回到 A 方向,一旦车厢驶出车站就不能再回到车站,如下图 所示。
求解所有可以从 B 方向驶出的车厢序列。
例如,编号为 1,2,3 的 3 节车厢,
则所有的 车厢序列为 3,2,1、2,3,1、2,1,3、1,3,2、1,2,3。
编写一个求解车厢调度问题的程序,要求如下:
(1)具有操作界面;
(2)可以测试多组数据,每组数据的车厢数 n 通过键盘输入;
(3)将车厢数 n、所有车厢序列保存到文本文件 Carriage-Dispatch.txt 中,格式如下:
车厢数 n
车厢序列 1
…
车厢序列(2n)!/(n+1)!n!
例如:
3
3,2,1
2,3,1
2,1,3
1,3,2
1,2,3