有关n阶拉丁方阵的问题
#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阶拉丁方阵的问题相关推荐
- 七阶拉丁方阵_【C语言】输出N阶拉丁方阵并统计个数
题目如下: 在N行N列的数阵中, 数K(1〈=K〈=N)在每行和每列中出现且仅 出现一次,这样的数阵叫N阶拉丁方阵.例如下图就是一个五阶拉丁方阵. 编一程序,从键盘输入N值后,打印出所有不同的N阶 ...
- 七阶拉丁方阵_拉丁方阵【转】
http://www.kuqin.com/tiku/20080424/7581.html 构造 NXN 阶的拉丁方阵(2<=N<=9),使方阵中的每一行和每一列中数字1到N只出现一次.如N ...
- 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 *问题分析与算法 ...
- 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 *问题分析与算法 ...
- 拉丁方阵(内置问题,渴望求解!)
拉丁方阵,或称为拉丁方,是一种特殊的Ñ阶方阵.如果用1开始的Ñ个连续正整数排成N×N的方阵,且每一行和每一列没有重复的数,就称其为一个ñ阶拉丁方阵.因为这样的方阵最早填充的是拉丁字母,因此得名拉丁方阵 ...
- 构造拉丁方阵和正交拉丁方阵组
将1,2,–,n这n个数填入n*n矩阵,使得每行每列的数两两不同(都是1,2,–,n的全排列),这样的n阶方阵是拉丁方阵.如果一对n阶拉丁方阵对应的元素构成的有序对两两不同,则称这一对n阶拉丁方阵是正 ...
- c语言 字母方阵,运用C语言制作拉丁方阵的实现方法
小编今天要给大家带来的教程是:运用C语言制作拉丁方阵的方法.在这篇教程中,小编以三个部分来进行讲述,分别是提出问题,问题分析以及程序编码这三部分,希望这篇教程可以帮助到大家. 在教程开始之前,小编先给 ...
- C循环链表拉丁方阵问题
输入n阶 拉丁方阵, 输入第一行的元素,自动算出其他(n-1)行的元素代码很简单 用一个循环链表解决 #include <stdio.h> #include <stdlib.h> ...
- 算法之美--4.3.5 拉丁方阵问题
拉丁方阵问题 问题描写叙述: 拉丁方阵是一种n×n的方阵,方阵中恰有n种不同的元素,每种元素恰有n个,而且每种元素在一行和一列中 恰好出现一次. 著名数学家和物理学家欧拉使用拉丁字母来作为拉丁方阵里元 ...
最新文章
- C++知识点14——类与static
- 中文字符串提交乱码的解决方法
- 044_定义类或对象
- 从Chrome源码看audio/video流媒体实现二
- python代码块注释快捷键_pycharm默认注释与快捷键功能
- 辉哥给rockchip修复了一个内存溢出问题
- android 获取cpu使用率_超详细的zabbix监控windows磁盘IO及cpu使用率教程
- 训练日志 2019.3.10
- mysql如何增加分区maxvalue_oracle range分区表已经有了MAXVALUE 分区,如何添加分区?要不能删除MAXVALUE分区里的数据,不影响在线应用。...
- 基于JAVA+SSH+MYSQL的工资管理系统
- c语言message函数应用,调用input_message的参数太少在主函数中 是神马意思 大神们帮帮我...
- Linux发展历史图
- 如何代理物联卡?需要什么流程认证?
- 组态王历史记录用access_Access数据库与表在 组态王中使用.ppt
- dcm文件如何转化为jpg或者bmp文件
- 计算机网络系统承接查验,智能化系统承接查验.doc
- Python3.5.3下载及安装教程
- 美团O2O广告营销中的机器学习技术
- 国内外 48 个最常用学术网站汇总,这可能是史上最全的!
- 拆卸台式计算机的顺序,台式电脑拆装与清灰教程,让电脑焕然一新|Crucial(英睿达)...
热门文章
- 源于实践的ERP123——ERP123方法论(转)
- 如何开始自动化员工招聘的五个提示
- 渗透基础——命令行下安装Microsoft .NET Framework
- 你值得拥有的IoT 物联网平台开发实用技巧(一)——数据价值类
- 「正定矩阵」和「半正定矩阵」
- 常用Unity的优化技巧集锦
- ominipeek 发包_WildPackets的著名的抓包软件Omnipeek
- 深度学习的宏观框架——训练(training)和推理(inference)及其应用场景
- Nginx代理POP协议之安装和配置
- 如何将知网上下载的KDH论文,CAJ reviewer 阅读器打开,转成PDF