幻方问题。。。。

xter 2004-04-26 02:33:44
1,2,3.......25

不管横,竖,斜,相加都是一个相等的数值。

用C语言怎么实现??
...全文
275 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
whalefish2001 2004-04-26
  • 打赏
  • 举报
回复
以下是第 1个 3阶幻方
6 7 2
1 5 9
8 3 4
以下是第 2个 3阶幻方
8 1 6
3 5 7
4 9 2
以下是第 3个 3阶幻方
8 3 4
1 5 9
6 7 2
以下是第 1个 4阶幻方
1 2 15 16
12 14 3 5
13 7 10 4
8 11 6 9
以下是第 2个 4阶幻方
1 2 15 16
13 14 3 4
12 7 10 5
8 11 6 9
以下是第 3个 4阶幻方
1 2 16 15
13 14 4 3
12 7 9 6
8 11 5 10
以下是第 4个 4阶幻方
1 3 14 16
10 13 4 7
15 6 11 2
8 12 5 9
以下是第 5个 4阶幻方
1 3 14 16
12 13 4 5
15 8 9 2
6 10 7 11
以下是第 6个 4阶幻方
1 3 14 16
15 13 4 2
10 6 11 7
8 12 5 9
以下是第 7个 4阶幻方
1 3 14 16
15 13 4 2
12 8 9 5
6 10 7 11
以下是第 8个 4阶幻方
1 3 16 14
8 15 2 9
13 6 11 4
12 10 5 7
以下是第 9个 4阶幻方
1 3 16 14
12 15 2 5
13 10 7 4
8 6 9 11
以下是第 10个 4阶幻方
1 3 16 14
13 15 2 4
8 6 11 9
12 10 5 7
以下是第 11个 4阶幻方
1 3 16 14
13 15 2 4
12 10 7 5
8 6 9 11
以下是第 12个 4阶幻方
1 4 13 16
8 15 2 9
14 5 12 3
11 10 7 6
以下是第 13个 4阶幻方
1 4 13 16
8 14 3 9
15 5 12 2
10 11 6 7
以下是第 14个 4阶幻方
1 4 13 16
12 15 2 5
14 9 8 3
7 6 11 10
以下是第 15个 4阶幻方
1 4 13 16
12 14 3 5
15 9 8 2
6 7 10 11
以下是第 16个 4阶幻方
1 4 13 16
14 15 2 3
8 5 12 9
11 10 7 6
以下是第 17个 4阶幻方
1 4 13 16
14 15 2 3
12 9 8 5
7 6 11 10
以下是第 18个 4阶幻方
1 4 13 16
15 14 3 2
8 5 12 9
10 11 6 7
以下是第 19个 4阶幻方
1 4 13 16
15 14 3 2
12 9 8 5
6 7 10 11
。。。。
。。。。。
。。。。。。。。
。。。。。。。。。。
以下是第 806个 4阶幻方
16 13 3 2
1 4 14 15
6 7 9 12
11 10 8 5
以下是第 807个 4阶幻方
16 13 3 2
1 6 12 15
8 11 5 10
9 4 14 7
以下是第 808个 4阶幻方
16 13 3 2
1 4 14 15
10 11 5 8
7 6 12 9
jiang5448 2004-04-26
  • 打赏
  • 举报
回复
#include "stdio.h"
#define Max 15
main()
{int i,j,k,a,c;
int m[Max][Max];
printf("input a number:\n");
scanf("%d",&a);
if(a>0&&a%2==1)
{printf("A=%3d\n\n",a);
c=a*a;
j=0;
k=a/2;
for(i=1;i<=c;i++)
{m[j][k]=i;
if(i%a==0)
if(i==a-1) j=0;
else j++;
else {if(j==0) j=a-1;
else j--;
if(k==a-1) k=0;
else k++;
}
}
for(i=0;i<a;i++)
{for(j=0;j<a;j++)
printf("%4d",m[i][j]);
printf("\n");
}

}
}


其实很简单的哦。
liushuaiboy 2004-04-26
  • 打赏
  • 举报
回复
mark
jiziba 2004-04-26
  • 打赏
  • 举报
回复
//这是用魔方理论的推论公式a[i,j]=(k-i+j)%n*n+(k-i-j)%n+1
//其中k=(5*n-1)/2,,,,i,j=0,1,2,.......


#include <stdio.h>
static const unsigned N = 7; //幻方阶数
int main(int argc, char *argv[])
{
int K = (5*N-1)/2;
for(int i=0;i<N;i++)
{
for(int j=0;j<N;j++)
printf("%3d",(K-i+j)%N*N+(K-i-j)%N+1);
printf("\n");
}
return 0;
}
eliner 2004-04-26
  • 打赏
  • 举报
回复
关注一下
byyyyy 2004-04-26
  • 打赏
  • 举报
回复
http://yamaths.myrice.com/zhghf/
zhouqingyuan 2004-04-26
  • 打赏
  • 举报
回复
这种题目这里很多的,自己搜索一下。
redhat456 2004-04-26
  • 打赏
  • 举报
回复
当n为偶数的时候该怎么写程序啊?
xter 2004-04-26
  • 打赏
  • 举报
回复
呵呵,很不错。

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧