魔方阵c语言程序,求魔方阵程序及算法
求"魔方阵"程序及算法
刚学了数组,有道习题要求打印1-n^2构成的魔方阵!
如三阶魔方阵:8 1 6
3 5 7
4 9 2
我找不到他的规律!
一气之下,做了个无穷的4阶的!算很长时间!
但我想知道一个关于n阶的通用程序,要求打印出由
1-n^2构成的 所有的 魔方阵!
有人能帮帮忙么?
4阶的这个我做的!
a b c d
e f g h
i j k l
m n o p
程序如下:
main()
{
int a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;
int num=0; /* 计算4阶魔方阵有多少种 */
for(a=1;a<=16;a++)
for(b=1;b<=16;b++)
{
if (b==a) continue; /* 当取值与a相同跳出本次循环 */
for(c=1;c<=16;c++)
{
if ((c==a)||(c==b)) continue;
d=34-a-b-c;
if ((d==a)||(d==b)||(d==c)||d<1||d>16) continue;
for(e=1;e<=16;e++)
{
if ((e==a)||(e==b)||(e==c)||(e==d)) continue;
for(f=1;f<=16;f++)
{
if ((f==a)||(f==b)||(f==c)||(f==d)||(f==e)) continue;
for(g=1;g<=16;g++)
{
if ((g==a)||(g==b)||(g==c)||(g==d)||(g==e)||(g==f)) continue;
h=34-e-f-g;
if ((h==a)||(h==b)||(h==c)||(h==d)||(h==e)||(h==f)
||(h==g)||h<1||h>16) continue;
for(i=1;i<=16;i++)
{
if ((i==a)||(i==b)||(i==c)||(i==d)||(i==e)
||(i==f)||(i==g)||(i==h)) continue;
for(j=1;j<=16;j++)
{
if ((j==a)||(j==b)||(j==c)||(j==d)||(j==e)
||(j==f)||(j==g)||(j==h)||(j==i)) continue;
for(k=1;k<=16;k++)
{
if ((k==a)||(k==b)||(k==c)||(k==d)||(k==e)
||(k==f)||(k==g)||(k==h)||(k==i)||(k==j)) continue;
l=34-i-j-k;
if ((l==a)||(l==b)||(l==c)||(l==d)||(l==e)
||(l==f)||(l==g)||(l==h)||(l==i)||(l==j)
||(l==k)||l<1||l>16) continue;
m=34-a-e-i;
if ((m==a)||(m==b)||(m==c)||(m==d)||(m==e)
||(m==f)||(m==g)||(m==h)||(m==i)||(m==j)
||(m==k)||(m==l)||m<1||m>16) continue;
n=34-b-f-j;
if ((n==a)||(n==b)||(n==c)||(n==d)||(n==e)
||(n==f)||(n==g)||(n==h)||(n==i)||(n==j)
||(n==k)||(n==l)||(n==m)||m<1||m>16) continue;
o=34-c-g-k;
if ((o==a)||(o==b)||(o==c)||(o==d)||(o==e)
||(o==f)||(o==g)||(o==h)||(o==i)||(o==j)
||(o==k)||(o==l)||(o==m)||(o==n)||o<1
||o>16) continue;
p=34-d-h-l;
if ((p==a)||(p==b)||(p==c)||(p==d)||(p==e)
||(p==f)||(p==g)||(p==h)||(p==i)||(p==j)
||(p==k)||(p==l)||(p==m)||(p==n)||(p==o)
||p<1||p>16) continue;
if ((m+n+o+p)!=34) continue;
if ((a+f+k+p)!=34) continue;
if ((d+g+j+m)!=34) continue;
printf("%2d,%2d,%2d,%2d\n",a,b,c,d);
printf("%2d,%2d,%2d,%2d\n",e,f,g,h);
printf("%2d,%2d,%2d,%2d\n",i,j,k,l);
printf("%2d,%2d,%2d,%2d\n",m,n,o,p);
num++;}}}}}}}}
printf("总共有%d种排序方法!!!\n",num);
printf("\n");
}
搜索更多相关主题的帖子:
魔方 算法 int
魔方阵c语言程序,求魔方阵程序及算法相关推荐
- 判断魔方阵c语言程序设计_C语言实现魔方阵代码及解析
原标题:C语言实现魔方阵代码及解析 问题描述 编写程序,实现如下表所示的5-魔方阵. 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 1 ...
- 打印魔方阵(C语言) 所谓魔方阵是指这样的方阵,它的每一行、每一列和对角线之和均相等。
打印魔方阵(C语言) 打印魔方阵,所谓魔方阵是指这样的方阵,它的每一行.每一列和对角线之和均相等.例如,三阶魔方阵为: 8 1 6 3 5 7 4 9 2 要求打印出由1到n2的自然数构成的魔方阵(n ...
- 请你设计一个用于填充n阶方阵的上三角区域的程序。
给大家分享一个老夫刚刚弄懂的代码,说实话,博主对这个填充N阶方阵的程序真心是不擅长啊,这个程序是从网上搞来的,废话不说了,直接上题:方阵的主对角线之上称为"上三角".请你设计一个用 ...
- 设计一个用于填充n阶方阵的上三角区域的程序。填充规则是:使用1,2,3...的自然数列,从左上角开始, 按照顺时针方向螺旋填充
题目7:方阵的主对角线之上称为"上三角". 请你设计一个用于填充n阶方阵的上三角区域的程序.填充规则是:使用1,2,3-的自然数列,从左上角开始, 按照顺时针方向螺旋填充. 例如: ...
- #奇数阶魔方阵c语言
奇数阶魔方阵简化版 #魔方阵C语言# #include <stdio.h> int main( ) { int a[16][16]={0},i,j,n,k; while(1) { prin ...
- c语言 字母方阵,运用C语言制作拉丁方阵的实现方法
小编今天要给大家带来的教程是:运用C语言制作拉丁方阵的方法.在这篇教程中,小编以三个部分来进行讲述,分别是提出问题,问题分析以及程序编码这三部分,希望这篇教程可以帮助到大家. 在教程开始之前,小编先给 ...
- c语言程序设计拉丁方阵结构图,C语言程序设计100例之(29):拉丁方阵
例29 拉丁方阵 问题描述 构造 NXN 阶的拉丁方阵,使方阵中的每一行和每一列中数字1到N只出现一次.如N=4时: 1 2 3 4 2 3 4 1 3 4 1 2 4 1 2 3 输入格式 一个正 ...
- 拉丁方阵C语言csdn,C语言:拉丁方阵
例29 拉丁方阵 问题描述 构造 NXN 阶的拉丁方阵,使方阵中的每一行和每一列中数字1到N只出现一次.如N=4时: 1 2 3 4 2 3 4 1 3 4 1 2 4 1 2 3 输入格式 一个正 ...
- c语言大学程序设计题库,黑龙江大学C语言程序设计试题库程序单选
<黑龙江大学C语言程序设计试题库程序单选>由会员分享,可在线阅读,更多相关<黑龙江大学C语言程序设计试题库程序单选(5页珍藏版)>请在人人文库网上搜索. 1.黑龙江大学C语言程 ...
最新文章
- Hbase与hive整合
- springboot配置Druid数据源
- 使用Qt开发中国象棋(一):概述
- ReactiveCocoa源码解读(二)
- LeetCode 800. 相似 RGB 颜色
- JEESZ分布式架构3--CentOs下安装MySQL(环境准备)
- 互联网开源贡献是什么意思_为什么我们为开源软件做出贡献?
- 【英语学习】【WOTD】tenacious 释义/词源/示例
- SSM中(Spring-SpringMVC-Mybatis)(二:整合)
- cpu核心电压:不一定是1.55伏特 : 全体到齐!200 mhz fsb的p4处理器与i875p双通道ddr400芯片组...
- 斐波那契数的两种实现方式———1.递归实现,2迭代实现
- 捷信达酒店管理系统密码修改SQL语句
- 5.1 tensorflow2实现简单线性回归分析——python实战
- 识别验证码,你有几分成功率?
- Netty-5、TCP 粘包/拆包 问题
- eclipse使用git提交代码步骤
- 最新版计算机知识超全题库,超全的计算机基础知识题库.doc
- web项目对接钉钉扫码登录
- 工作流现状2008年
- OSI七层模型详解物理层、数据链路层、网络层、传输层.....应用层协议