??4. 在N行N列的数阵中, 数K(1〈=K〈=N)在每行和每列中出现且仅
??出现一次,这样的数阵叫N阶拉丁方阵。例如下图就是一个五阶拉丁方阵。
??编一程序,从键盘输入N值后,打印出所有不同的N阶拉丁方阵,并统计个数。
12345
23451
34512
45123
51234
#include <stdio.h>
int main(int argc,char* argv[])
{
int n;
puts("please input a number:");
scanf("%d",&n);
putchar('\n');
int k=0;
for(int i=1;i<=n;i++)
{
for(int j=0;j<n;j++)
{
if(i+j<=n)
printf("%d",i+j);
else
printf("%d",i+j-n);
putchar(' ');
}
putchar('\n');
}
return 0;
}
/*
please input a number:
10
1 2 3 4 5 6 7 8 9 10
2 3 4 5 6 7 8 9 10 1
3 4 5 6 7 8 9 10 1 2
4 5 6 7 8 9 10 1 2 3
5 6 7 8 9 10 1 2 3 4
6 7 8 9 10 1 2 3 4 5
7 8 9 10 1 2 3 4 5 6
8 9 10 1 2 3 4 5 6 7
9 10 1 2 3 4 5 6 7 8
10 1 2 3 4 5 6 7 8 9
Terminated with return code 0
Press any key to continue ...
*/