这是谭浩强教授课本上的
输出魔方阵.所谓魔方阵是指这样的方阵,它的每一行,每一列,和对角线之和均相等.例如,三阶魔方阵为
8 1 6
3 5 7
4 9 2
要求输出1到N方的自然数构成的魔方阵.
不求大家把答案告诉给我,只是告诉给我思路.
我连排魔方的方法都不会,别说编程了,呵呵!
这是谭浩强教授课本上的
输出魔方阵.所谓魔方阵是指这样的方阵,它的每一行,每一列,和对角线之和均相等.例如,三阶魔方阵为
8 1 6
3 5 7
4 9 2
要求输出1到N方的自然数构成的魔方阵.
不求大家把答案告诉给我,只是告诉给我思路.
我连排魔方的方法都不会,别说编程了,呵呵!
[此贴子已经被作者于2006-3-9 9:05:46编辑过]
是谭浩强教授课本上的
输出魔方阵.所谓魔方阵是指这样的方阵,它的每一行,每一列,和对角线之和均相等.例如,三阶魔方阵为
8 1 6
3 5 7
4 9 2
要求输出1到N方的自然数构成的魔方阵.
不求大家把答案告诉给我,只是告诉给我思路.
我连排魔方的方法都不会,别说编程了,呵呵!
我想了一个思路,不知道可行不,我想可能太复杂了吧
首先定义一个二维数组如a[100][100],sum1[100],sum2[100]
sum3[100],sum4[100]键盘输入n的值(n<100),用循环控制行列
for(i=0;i<n;i++)
for(j=0;j<n;j++)/*j控制列,i控制行*/
然后利用随机函数random(9),产生9范围之内的值,读入到a[i][j]
中,利用循环嵌套,先取sum1[0]=a[0][0]+…a[0][j],依此类推,
sum1[i]=a[i-1][j-1]+…a[i][j],用通俗的话讲,也就是i循环1
次,j循环n次,用sum1[i]存放每一行的累加值。存放完毕之后,然后
for(i=0;i<n;i++)
if(sum1[0]==sum1[i])如果相等就打印出来,不相等由计算机重新取值
这只是求每一行的,而每一列,还有两条对角线也是同样的方法。
应该是这样吧,我也是才想的。
我是菜鸟,也不怎么懂!
有魔方阵专门的算法,比较简单.只是写起来挺麻烦.
(-_-;),新版主直接给代码,考验楼主定力
单数幻方有个算法,搜一下就看到了
不好意思..我以为是找代码啊!!!
这是我高中的时候写的代码,以前学C没写过注释,望谅解!!!