小代码3 魔方矩阵

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小代码3 魔方矩阵相关的知识,希望对你有一定的参考价值。

#include <stdio.h>
#include <stdlib.h>
 
#define N 4    //测试所用
 

void fun()
{
int a[9][9],r,c,num,n;  //最大9*9的矩阵  可以修改规模
n=N;
for(r=0;r<n;r++)
  for(c=0;c<n;c++)
   a[r][c]=0;
r=0;c=n/2;num=1;     
a[r][c]=num;             //定位第一个元素
while(num<n*n) 
 {
   num++;
   if(r==0&&c==n-1)r++;
   else 
{ r--;c++;
  if(r<0)r=n-1;          //不断定位
   if(c==n)c=0;
   if(a[r][c]!=0){r+=2;c--;}
}
 a[r][c]=num;            //根据定位 逐渐从1填到n*n

 }
for(r=0;r<n;r++)         //打印   n数据大时  需要调节%4d等格式化输出
  {for(c=0;c<n;c++)
     printf("%3d",a[r][c]);
   printf("\n");
  }
 

}
void main()
{
 
fun();
 
}
注意到magic(4)在matlab里只有一种打印方式  是有内部函数实现的,而4阶幻方是有不同的写法
这里难点在于循环定位,而基本性质1 求和项值为n(n*n+1)/2 而奇数阶中间值为(n*n+1)/2


以上是关于小代码3 魔方矩阵的主要内容,如果未能解决你的问题,请参考以下文章

猿创征文|基于 AppCube 应用魔方:零代码手把手教你 5 分钟开发微信小程序

每天一个JavaScript小特效——会魔法的旋转魔方相册

小代码 单链表之反转 然后交错重连+稀疏矩阵

魔方栈源码-网站在线玩魔方源码-云魔方

程序员面试京东前端,现场JavaScript代码写出魔方特效

如何用matlab生成一个3阶和5阶魔方矩阵