| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1511 人关注过本帖
标题:奇数阶幻方问题
只看楼主 加入收藏
guzhou
Rank: 1
等 级:新手上路
威 望:1
帖 子:247
专家分:0
注 册:2006-11-4
收藏
 问题点数:0 回复次数:10 
奇数阶幻方问题
在下写了个奇数阶幻方问题的程序,
在TC2.0能得到正确结果,但是在VC6.0却
得到错解,谁能解释一下原因,谢谢!
搜索更多相关主题的帖子: 奇数阶 结果 解释 
2006-11-15 12:29
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

把代码贴上来,你也可以搜索魔方阵,以前有过这样的帖.


倚天照海花无数,流水高山心自知。
2006-11-15 12:36
guzhou
Rank: 1
等 级:新手上路
威 望:1
帖 子:247
专家分:0
注 册:2006-11-4
收藏
得分:0 

不好意思忘了贴代码
用的是连续摆数法

#include<stdio.h>

int main()
{
int a[100][100],n,i,j,k,m;
scanf("%d",&n);
i=0;j=n/2;
a[i][j]=1;
for(;;)
if(a[i][j]==n*n)break;
else
{
k=i;m=j;
i=(i-1+n)%n;j=(j+1)%n;
if(a[i][j]!=0)
{
i=(k+1)%n;
j=m;
a[i][j]=a[k][m]+1;
}
else a[i][j]=a[k][m]+1;
}
for(j=0;j<n;j++)
{
for(i=0;i<n;i++)
printf("%4d",a[j][i]);
printf("\n");
}
return 0;
}


2006-11-15 12:39
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
for(j=0;j<n;j++)
{
for(i=0;i<n;i++)
a[j][i]=0;
}

给原始数组初始化,VC不会默认为0,会给它一组随机数,当执行 if(a[i][j]!=0)
这个的时候,它总为真.(如果随机值不为0的话,为0的概率太小了.)

倚天照海花无数,流水高山心自知。
2006-11-15 13:11
guzhou
Rank: 1
等 级:新手上路
威 望:1
帖 子:247
专家分:0
注 册:2006-11-4
收藏
得分:0 

还是不行啊?


2006-11-15 13:32
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

可是我试过可以啊.

#include<stdio.h>

int main()
{
int a[100][100],n,i,j,k,m;
scanf("%d",&n);
for(j=0;j<n;j++)
{
for(i=0;i<n;i++)
a[j][i]=0;
}

i=0;j=n/2;
a[i][j]=1;
for(;;)
if(a[i][j]==n*n)break;
else
{
k=i;m=j;
i=(i-1+n)%n;j=(j+1)%n;
if(a[i][j]!=0)
{
i=(k+1)%n;
j=m;
a[i][j]=a[k][m]+1;
}
else a[i][j]=a[k][m]+1;
}
for(j=0;j<n;j++)
{
for(i=0;i<n;i++)
printf("%4d",a[j][i]);
printf("\n");
}
return 0;
}


倚天照海花无数,流水高山心自知。
2006-11-15 14:37
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 
奇数的容易,对角线开始向上,如果冲突则往下移一格

但是谁知道偶数的怎么算呀?????

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2006-11-15 20:18
guzhou
Rank: 1
等 级:新手上路
威 望:1
帖 子:247
专家分:0
注 册:2006-11-4
收藏
得分:0 
怪了,这回又可以了!
可能上次搞错了!
谢谢nuciewth版主!

2006-11-17 16:37
guzhou
Rank: 1
等 级:新手上路
威 望:1
帖 子:247
专家分:0
注 册:2006-11-4
收藏
得分:0 
以下是引用卧龙孔明在2006-11-15 20:18:50的发言:
奇数的容易,对角线开始向上,如果冲突则往下移一格

但是谁知道偶数的怎么算呀?????

这个可以参考
好玩的数学系列中的
幻方及其他
有多种方法!


2006-11-17 16:40
qintian0125
Rank: 1
等 级:新手上路
帖 子:9
专家分:2
注 册:2009-9-28
收藏
得分:0 
程序怎么没有注释啊?让人有点难看懂,请大家以后发表的时候顺便注释一下。
2009-09-28 21:30
快速回复:奇数阶幻方问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016515 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved