幻方矩阵或魔方矩阵的思路!
幻方矩阵或魔方矩阵,每行每列之和都相等!用C的解题思路,有什么规律?
程序代码:# include <stdio.h>
int main(void)
{
int i,j,n,k,a[100][100]={0};
do{
printf("n=");
scanf("%d",&n);
}while(n<3||n%2==0);
for(i=0,j=n/2,k=1;k<=n*n;k++)
{
a[i][j]=k;
if(a[i+(i!=0?-1:n-1)][j+(j!=n-1?1:-j)]) /* 判断下个存放的位置是否被占 */
i++;
else /* 如下个位置没被占,指向下个位置 */
i=i!=0?i-1:n-1,j=j!=n-1?j+1:0;
}
for(i=0;i<n;i++) /* 输出 */
{for(j=0;j<n;j++)
printf("%5d",a[i][j]);
printf("\n\n");
}
getch();
return 0;
}
