小代码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 分钟开发微信小程序