奇幻方的摇摆法和阶梯法

来源:互联网 发布:淘宝修改地址怎么修改 编辑:程序博客网 时间:2024/05/17 00:06
奇幻方的摇摆法
奇幻方主流有四种求法.我用了一种.还有个阶梯法比较搞人.第二个printf没法用...
算法.第一行中间是1
每次向右上移动.
到了边界则换到另外一个边界.
如果下一个数有了.就下一一个
如果到了右上角就下一一个.
我这个是5阶幻方.
# include"stdio.h"
void main()
{
int a[7][7]={0};
int i=1,j=3,k=1;
int x,y;
while (k<26)
{
a[j]=k;
i--;
j++;
k++;
if(0!=a[j])
{i+=2;j-=1;continue;}
if(i==0&&j==6)
{i=2;j=5;continue;}
if (i==0){i=5;}//5
if(j==6){j=1;}
}
for (x=1;x<6;x++)
{
for(y=1;y<6;y++)
  {printf("%d/t",a[x][y]);}
printf("/n");
}
}
17      24      1       8       15
23      5       7       14      16
4       6       13      20      22
10      12      19      21      3
11      18      25      2       9
这个是图.
下面的是阶梯法的结果.手算的
3       16      9      22       15
20       8       21     14      2  
7       25       13      1       19
24       12      5       18      6
11      4       17      0       23  .
这个是阶梯法的草稿
0       0       0       0       5       0       0       0       0零
0       0       0       4       0       10      0       0       0一
0       0       3       0       9       0       15      0       0二
0       2       0       8       0       14      0       20      0三
1       0       7       0       13      0       19      0       25四
0       6       0       12      0       18      0       24      0五
0       0       11      0       17      0       23      0       0六
0       0       0       16      0       22      0       0       0七
0       0       0       0       21      0       0       0       0八
原创粉丝点击