关于九阶幻方

来源:百度知道 编辑:UC知道 时间:2024/09/19 19:37:31
给一个9阶幻方
1-81
不能重复
10分钟马上,谢

45,34,23,12,01,80,69,58,47
46,44,33,22,11,09,29,68,57
56,54,43,32,21,10,08,78,67
66,55,53,42,31,20,18,07,77
76,65,63,52,41,30,19,17,06
05,75,64,62,51,40,29,27,16
15,04,74,72,61,50,39,28,26
25,14,03,73,71,60,49,38,36
35,24,13,02,81,70,59,48,37

这道题我见过!

以下是用TC写的填幻方的程序代码适用于16阶以内的幻方
#include "stdio.h"
main()
{int n,i,j,k,x,y;
char cn;
static int t[16][16];
loop: printf("输入幻方阶数 n (0<n<16):");
scanf("%d",&n);
if((n%2==0)||(n<0)||(n>15))
{printf("此数不能构成幻方 \n");
goto loop;
}
else
{j=1;
k=(n+1)/2;
t[j][k]=1;
x=j;
y=k;
for(i=2;i<(n*n+1);i++)
{j=j-1;
k=k+1;
if((j<1)&&(k>n))
{j=j+2;
k=k-1;
}
else
{if(k>n) k=1;
else if(j<1) j=n;
}
if(t[j][k]==0) t[j][k]=i;
else
{j=x+1;
k=y;