#include<stdio.h>
#include<conio.h>

int as[20][20]; /*拉丁方阵在此二维数组上规划*/
int a1[20]; /*每行可出现的数都在里面*/
int yy=0;

int do1(int x,int y,int n)
{
int i=1;
for(;i<x;i++)
{
if(as[y][i]==n)
{
 return 0;
}
 
}

for(i=1;i<y;i++)
{
if(as[i][x]==n)
{
return 0;
}

}

return 1;
}

void print(int a[20][20],int n)
{
int i=1,j=1;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
if(j==1)
{
printf("\n");
}
printf("%d ",a[i][j]);
}
}

}

void fun(int x,int y,int n) /*x y 为当前处理的坐标*/
{
int i=1;
for(;i<=n;i++)
{
if(do1(x,y,a1[i])) /*do1()是判断此处可否为a1[i]*/
{
as[y][x]=a1[i];

if(x==n&&y==n)
{
yy++;
print(as,n); 
printf("\n"); 
  return;//返回 
}

if(x==n)
{
   fun(1,y+1,n);
}
else
{
  fun(x+1,y,n);
}

}
}
}

int main()
{ int n=0,i=1;
printf("需要求的次方:");
scanf("%d",&n);

for(;i<=n;i++)
{
a1[i]=i;
}

fun(1,1,n);

printf("\n\n\n It is %d.",yy);
return 0;
}

有关n阶拉丁方阵的问题相关推荐

  1. 七阶拉丁方阵_【C语言】输出N阶拉丁方阵并统计个数

    题目如下: 在N行N列的数阵中, 数K(1〈=K〈=N)在每行和每列中出现且仅  出现一次,这样的数阵叫N阶拉丁方阵.例如下图就是一个五阶拉丁方阵.  编一程序,从键盘输入N值后,打印出所有不同的N阶 ...

  2. 七阶拉丁方阵_拉丁方阵【转】

    http://www.kuqin.com/tiku/20080424/7581.html 构造 NXN 阶的拉丁方阵(2<=N<=9),使方阵中的每一行和每一列中数字1到N只出现一次.如N ...

  3. c语言程序设计拉丁方阵结构图,C语言实例之拉丁方阵

    构造 NXN 阶的拉丁方阵(2<=N<=9),使方阵中的每一行和每一列中数字1到N只出现一次.如N=4时: 1 2 3 4 2 3 4 1 3 4 1 2 4 1 2 3 *问题分析与算法 ...

  4. c语言程序设计拉丁方阵结构图,C语言实例:拉丁方阵

    构造 NXN 阶的拉丁方阵(2<=N<=9),使方阵中的每一行和每一列中数字1到N只出现一次.如N=4时: 1 2 3 4 2 3 4 1 3 4 1 2 4 1 2 3 *问题分析与算法 ...

  5. 拉丁方阵(内置问题,渴望求解!)

    拉丁方阵,或称为拉丁方,是一种特殊的Ñ阶方阵.如果用1开始的Ñ个连续正整数排成N×N的方阵,且每一行和每一列没有重复的数,就称其为一个ñ阶拉丁方阵.因为这样的方阵最早填充的是拉丁字母,因此得名拉丁方阵 ...

  6. 构造拉丁方阵和正交拉丁方阵组

    将1,2,–,n这n个数填入n*n矩阵,使得每行每列的数两两不同(都是1,2,–,n的全排列),这样的n阶方阵是拉丁方阵.如果一对n阶拉丁方阵对应的元素构成的有序对两两不同,则称这一对n阶拉丁方阵是正 ...

  7. c语言 字母方阵,运用C语言制作拉丁方阵的实现方法

    小编今天要给大家带来的教程是:运用C语言制作拉丁方阵的方法.在这篇教程中,小编以三个部分来进行讲述,分别是提出问题,问题分析以及程序编码这三部分,希望这篇教程可以帮助到大家. 在教程开始之前,小编先给 ...

  8. C循环链表拉丁方阵问题

    输入n阶 拉丁方阵, 输入第一行的元素,自动算出其他(n-1)行的元素代码很简单 用一个循环链表解决 #include <stdio.h> #include <stdlib.h> ...

  9. 算法之美--4.3.5 拉丁方阵问题

    拉丁方阵问题 问题描写叙述: 拉丁方阵是一种n×n的方阵,方阵中恰有n种不同的元素,每种元素恰有n个,而且每种元素在一行和一列中 恰好出现一次. 著名数学家和物理学家欧拉使用拉丁字母来作为拉丁方阵里元 ...

最新文章

  1. C++知识点14——类与static
  2. 中文字符串提交乱码的解决方法
  3. 044_定义类或对象
  4. 从Chrome源码看audio/video流媒体实现二
  5. python代码块注释快捷键_pycharm默认注释与快捷键功能
  6. 辉哥给rockchip修复了一个内存溢出问题
  7. android 获取cpu使用率_超详细的zabbix监控windows磁盘IO及cpu使用率教程
  8. 训练日志 2019.3.10
  9. mysql如何增加分区maxvalue_oracle range分区表已经有了MAXVALUE 分区,如何添加分区?要不能删除MAXVALUE分区里的数据,不影响在线应用。...
  10. 基于JAVA+SSH+MYSQL的工资管理系统
  11. c语言message函数应用,调用input_message的参数太少在主函数中 是神马意思 大神们帮帮我...
  12. Linux发展历史图
  13. 如何代理物联卡?需要什么流程认证?
  14. 组态王历史记录用access_Access数据库与表在 组态王中使用.ppt
  15. dcm文件如何转化为jpg或者bmp文件
  16. 计算机网络系统承接查验,智能化系统承接查验.doc
  17. Python3.5.3下载及安装教程
  18. 美团O2O广告营销中的机器学习技术
  19. 国内外 48 个最常用学术网站汇总,这可能是史上最全的!
  20. 拆卸台式计算机的顺序,台式电脑拆装与清灰教程,让电脑焕然一新|Crucial(英睿达)...

热门文章

  1. 源于实践的ERP123——ERP123方法论(转)
  2. 如何开始自动化员工招聘的五个提示
  3. 渗透基础——命令行下安装Microsoft .NET Framework
  4. 你值得拥有的IoT 物联网平台开发实用技巧(一)——数据价值类
  5. 「正定矩阵」和「半正定矩阵」
  6. 常用Unity的优化技巧集锦
  7. ominipeek 发包_WildPackets的著名的抓包软件Omnipeek
  8. 深度学习的宏观框架——训练(training)和推理(inference)及其应用场景
  9. Nginx代理POP协议之安装和配置
  10. 如何将知网上下载的KDH论文,CAJ reviewer 阅读器打开,转成PDF