第一步:构造基方:用1-5填写幻方,使两对角线上分别是12345和33333,而且每横行纵行和均为15,如下
1 4 2 5 3
4 2 5 3 1
2 5 3 1 4
5 3 1 4 2
3 1 4 2 5
第二步:然后构造根方:将基方左右调转过来,每个数都减去1,再乘以5,得到如下
10 20 5 15 0
0 10 20 5 15
15 0 10 20 5
5 15 0 10 20
20 5 15 0 10
第三步:根方和基方每个对应小格中的数相加,得到最后的幻方
11 24 7 20 3
4 12 25 8 16
17 5 13 21 9
10 18 1 14 22
23 6 19 2 15
即二十五宫格。
可以用二维数组,实现如下:
#include <stdio.h>#include <stdlib.h>
int main()
{
int a[3][3],i,j
printf("请输入9个整数(每个数之间用空格隔开):")
for(i=0i<3i++)
for(j=0j<3j++)
scanf("%d",&a[i][j])
printf("您输入的数为:\n")
for(i=0i<3i++)
printf("%d %d %d\n",a[i][0],a[i][1],a[i][2])
system("pause")
return 0
}