| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1655 人关注过本帖
标题:九宫数的问题(原创)
只看楼主 加入收藏
darrenyang
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2004-5-5
收藏
 问题点数:0 回复次数:13 
九宫数的问题(原创)
请问各位如何解觉,1——9这几个数排成三行和列,要使每一边的数相加和斜着相加也相等(假我们不知道它们相加是等于15的话怎样去解觉)
搜索更多相关主题的帖子: 九宫 
2004-05-20 10:36
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
这提不难,只是全部列出9位数的全组合,然后分别判断其个边的和以及斜边的和是否相等,如相等,打印其输出。

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2004-05-20 11:47
darrenyang
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2004-5-5
收藏
得分:0 
能上个解的贴吗?
2004-05-20 11:55
zff_ff
Rank: 1
等 级:新手上路
帖 子:147
专家分:0
注 册:2004-5-12
收藏
得分:0 

我认为二楼的算法不是很好

虽然这么做问题不大,但是计算机的负担很大

如果将数字分成3个部分1~3,4~6,7~9进行排列这样好象会好些

一家之言,仅供参考

至于代码,如果晚上有时间我会试试,不知道可不可以写的出来


偶是一只想要飞却忘了咋飞的菜鸟
2004-05-20 12:15
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 

下面是这道题的C++ 代码:

#include <iostream> #include <algorithm> using namespace std;

int main() { int num[9] = {1,2,3,4,5,6,7,8,9};

sort(num, num+9); do { int sum1 = num[0] + num[1] + num[2]; int sum2 = num[3] + num[4] + num[5]; if(sum1 == sum2) { int sum3 = num[6] + num[7] + num[8]; if(sum2 == sum3) { int sum4 = num[0] + num[3] + num[6]; if(sum3 == sum4) { int sum5 = num[1] + num[4] + num[7]; if(sum4 == sum5) { int sum6 = num[2] + num[5] + num[8]; if(sum5 == sum6) { int sum7 = num[2] + num[4] + num[6]; if(sum6 == sum7) { int sum8 = num[0] + num[4] + num[8]; if(sum7 == sum8) { cout<<num[0]<<num[1]<<num[2]<<endl; cout<<num[3]<<num[4]<<num[5]<<endl; cout<<num[6]<<num[7]<<num[8]<<endl; cout<<endl; } } } } } } } }while (next_permutation(num, num+9));

return 0; }


自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2004-05-20 12:21
darrenyang
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2004-5-5
收藏
得分:0 

回kai

我也编过类试的代码但不成功。顺便问一下你用VC还是用别的什么?

[此贴子已经被作者于2004-05-20 12:34:13编辑过]

2004-05-20 12:33
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 

我用的是VC, 不过这应该在Dev 下也能运行的。

如果你再Dev 下运行,在 return 0; 之前,加一条语句,system("pause");

否则你看不到运行结果。

另外添加一条头文件 #include <stdlib.h>


自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2004-05-20 12:39
jzh2004
Rank: 1
等 级:新手上路
帖 子:341
专家分:0
注 册:2004-4-30
收藏
得分:0 

这个是幻方问题,网上很多的, 可以不用穷举法的


我的主页 http://www.
2004-05-20 23:06
darrenyang
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2004-5-5
收藏
得分:0 

jzh2004

你有更好的方法就拿上来说一下吧

2004-05-21 09:40
jzh2004
Rank: 1
等 级:新手上路
帖 子:341
专家分:0
注 册:2004-4-30
收藏
得分:0 
我没做过,只是在好多论坛上都看到过,你可以去找找

我的主页 http://www.
2004-05-25 19:41
快速回复:九宫数的问题(原创)
数据加载中...
 
   



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

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