在N行N列的数阵中, 数K(1〈=K〈=N)在每行和每列中出现且仅
出现一次,这样的数阵叫N阶拉丁方阵。例如下图就是一个五阶拉丁方阵。
编一程序,从键盘输入N值后,打印出所有不同的N阶拉丁方阵,并统计个数。
1 2 3 4 5
2 3 4 5 1
3 4 5 1 2
4 5 1 2 3
5 1 2 3 4
思路:利用表存储5个整形变量的元素,将表头取出叉到表尾
重复5次结束
#include <stdio.h>
#include <list.h>
int main()
{
list<int> List;
list<int>::iterator IT;
for(int i=1;i<6;i++)
List.push_back(i);
for(int j=0;j<5;j++)
{
int x =List.front();
List.pop_front();
List.push_back(x);
for(IT= List.begin();IT!= List.end();IT++)
List.front();
printf("/n");
}
return 0;
}