一.问题描述
构造 NXN 阶的拉丁方阵(2<=N<=9),使方阵中的每一行和每一列中数字1到N只出现一次。如N=4时:
1 2 3 4
2 3 4 1
3 4 1 2
4 1 2 3
二.问题分析
观察给出的例子,可以发现:若将每 一行中第一列的数字和最后一列的数字连起来构成一个环,则该环正好是由1到N顺序构成;对于第i行,这个环的开始数字为i。
三.代码
/**
* 拉丁方阵
*/
public class LatinSquare {
public static void main(String[] args) {
// 生成拉丁方阵
System.err.println("生成拉丁方阵:");
createLatinSquare(4);
}
// 生成拉丁方阵
private static void createLatinSquare(int n) {
if (n < 2 || n > 9)
return;
// 生成一个长度为n的循环链表
Node