求"魔方阵"程序及算法

刚学了数组,有道习题要求打印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语言程序,求魔方阵程序及算法相关推荐

  1. 判断魔方阵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 ...

  2. 打印魔方阵(C语言) 所谓魔方阵是指这样的方阵,它的每一行、每一列和对角线之和均相等。

    打印魔方阵(C语言) 打印魔方阵,所谓魔方阵是指这样的方阵,它的每一行.每一列和对角线之和均相等.例如,三阶魔方阵为: 8 1 6 3 5 7 4 9 2 要求打印出由1到n2的自然数构成的魔方阵(n ...

  3. 请你设计一个用于填充n阶方阵的上三角区域的程序。

    给大家分享一个老夫刚刚弄懂的代码,说实话,博主对这个填充N阶方阵的程序真心是不擅长啊,这个程序是从网上搞来的,废话不说了,直接上题:方阵的主对角线之上称为"上三角".请你设计一个用 ...

  4. 设计一个用于填充n阶方阵的上三角区域的程序。填充规则是:使用1,2,3...的自然数列,从左上角开始, 按照顺时针方向螺旋填充

    题目7:方阵的主对角线之上称为"上三角". 请你设计一个用于填充n阶方阵的上三角区域的程序.填充规则是:使用1,2,3-的自然数列,从左上角开始, 按照顺时针方向螺旋填充. 例如: ...

  5. #奇数阶魔方阵c语言

    奇数阶魔方阵简化版 #魔方阵C语言# #include <stdio.h> int main( ) { int a[16][16]={0},i,j,n,k; while(1) { prin ...

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

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

  7. 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 输入格式 一个正 ...

  8. 拉丁方阵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 输入格式 一个正 ...

  9. c语言大学程序设计题库,黑龙江大学C语言程序设计试题库程序单选

    <黑龙江大学C语言程序设计试题库程序单选>由会员分享,可在线阅读,更多相关<黑龙江大学C语言程序设计试题库程序单选(5页珍藏版)>请在人人文库网上搜索. 1.黑龙江大学C语言程 ...

最新文章

  1. Hbase与hive整合
  2. springboot配置Druid数据源
  3. 使用Qt开发中国象棋(一):概述
  4. ReactiveCocoa源码解读(二)
  5. LeetCode 800. 相似 RGB 颜色
  6. JEESZ分布式架构3--CentOs下安装MySQL(环境准备)
  7. 互联网开源贡献是什么意思_为什么我们为开源软件做出贡献?
  8. 【英语学习】【WOTD】tenacious 释义/词源/示例
  9. SSM中(Spring-SpringMVC-Mybatis)(二:整合)
  10. cpu核心电压:不一定是1.55伏特 : 全体到齐!200 mhz fsb的p4处理器与i875p双通道ddr400芯片组...
  11. 斐波那契数的两种实现方式———1.递归实现,2迭代实现
  12. 捷信达酒店管理系统密码修改SQL语句
  13. 5.1 tensorflow2实现简单线性回归分析——python实战
  14. 识别验证码,你有几分成功率?
  15. Netty-5、TCP 粘包/拆包 问题
  16. eclipse使用git提交代码步骤
  17. 最新版计算机知识超全题库,超全的计算机基础知识题库.doc
  18. web项目对接钉钉扫码登录
  19. 工作流现状2008年
  20. OSI七层模型详解物理层、数据链路层、网络层、传输层.....应用层协议

热门文章

  1. 电脑无法打开相机照片怎么解决?
  2. 做完系统回来计算机连接不上网络,系统重装后不能上网_重装系统后上不了网怎么办-太平洋IT百科...
  3. 福来惠源:适合普通人做副业的几种思路
  4. 《Unity着色器和屏幕特效开发秘笈》—— 1.1 引言
  5. 人工智能技术名词解释
  6. OpenGL入门学习笔记(一)——简单实现FFT海洋
  7. 搜索引擎 大咖 快来哦
  8. js之深浅克隆(深浅拷贝)
  9. 超简明php 微信公众号获取用户openid、昵称头像基本信息
  10. 2022爱分析·SD-WAN市场研究报告 | 爱分析报告