拉丁方阵

/*构造N*N阶的拉丁方阵,使方阵每一行和每一列中数字1到N只出现一次


*/


#include<stdio.h>

#define N 6


int main()
{
    int i, j, k, t;
    for(j = 0; j < N; j++) //构造N个方阵
    {
        for(i = 0; i < N; i++)  //一个方阵有N行
{
   t = (i + j);  //第几个方阵的第几行的第一个元素
   for(k = 0; k < N; k++)
   {
       printf("%d", (k + t) % N + 1);//将第一个元素依次加一,形成循环,从而达到不同数的目的
   }
   printf("\n");
}
printf("\n");
    }
    return 0;

}

123456
234561
345612
456123
561234
612345


234561
345612
456123
561234
612345
123456


345612
456123
561234
612345
123456
234561


456123
561234
612345
123456
234561
345612


561234
612345
123456
234561
345612
456123


612345
123456
234561
345612
456123
561234


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值