社区
数据结构与算法
帖子详情
求教(有没有人能做的出来的--最好能用多种方法)
CycloneFox
2003-10-10 11:27:13
9个数字从1~9分别放在3*3的格子里使横,竖,斜相加所得的数均等于同一个数.
用C++编写.
扩展为25,49,81个数.
那位大虾肯帮小弟这个忙呀?
...全文
46
6
打赏
收藏
求教(有没有人能做的出来的--最好能用多种方法)
9个数字从1~9分别放在3*3的格子里使横,竖,斜相加所得的数均等于同一个数. 用C++编写. 扩展为25,49,81个数. 那位大虾肯帮小弟这个忙呀?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
CycloneFox
2003-10-12
打赏
举报
回复
楼上的师兄,谢谢了。
CycloneFox
2003-10-11
打赏
举报
回复
谢谢了真是太好了.
哈哈.
BlueSky2008
2003-10-11
打赏
举报
回复
FAQ->组合数学算法->n阶幻方解法。
nealzane
2003-10-11
打赏
举报
回复
修正了小小的漏洞(不过也是洞啊 =_=b):
#include <iostream>
using namespace std;
bool used[12] = { false };
int board[4][4];
bool check(void) {
return (board[1][1] + board[2][1] + board[3][1] == 15 &&
board[1][2] + board[2][2] + board[3][2] == 15 &&
board[1][3] + board[2][3] + board[3][3] == 15 &&
board[1][1] + board[2][2] + board[3][3] == 15 &&
board[1][3] + board[2][2] + board[3][1] == 15);
}
void rowAt(int row) {
if (row == 0) {
if (check()) {
for (int i = 1; i <= 3; i ++, cout << endl)
for (int j = 1; j <= 3; j ++)
cout << board[i][j] << ' ';
cout << endl;
}
}
else {
for (int i = 1; i <= 9; i ++) {
if (!used[i]) {
used[i] = true;
board[row][1] = i;
for (int j = 1; j <= 9; j ++) {
if (!used[j]) {
used[j] = true;
board[row][2] = j;
int k = 15 - i - j;
if (k > 0 && k < 10 && !used[k]) {
used[k] = true;
board[row][3] = k;
rowAt(row - 1);
used[k] = false;
}
used[j] = false;
}
}
used[i] = false;
}
}
}
}
int main(void) {
rowAt(3);
}
------------------------------------------------------------
输出:
4 3 8
9 5 1
2 7 6
6 1 8
7 5 3
2 9 4
2 7 6
9 5 1
4 3 8
8 1 6
3 5 7
4 9 2
2 9 4
7 5 3
6 1 8
8 3 4
1 5 9
6 7 2
4 9 2
3 5 7
8 1 6
6 7 2
1 5 9
8 3 4
nealzane
2003-10-11
打赏
举报
回复
扔块砖头:
#include <iostream>
using namespace std;
bool used[12] = { false };
int board[4][4];
bool check(void) {
return (board[1][1] + board[2][1] + board[3][1] == 15 &&
board[1][2] + board[2][2] + board[3][2] == 15 &&
board[1][3] + board[2][3] + board[3][3] == 15 &&
board[1][1] + board[2][2] + board[3][3] == 15 &&
board[1][3] + board[2][2] + board[3][1] == 15);
}
void rowAt(int row) {
if (row == 0) {
if (check()) {
for (int i = 1; i <= 3; i ++, cout << endl)
for (int j = 1; j <= 3; j ++)
cout << board[i][j] << ' ';
cout << endl;
}
}
else {
for (int i = 1; i <= 9; i ++) {
if (!used[i]) {
used[i] = true;
board[row][1] = i;
for (int j = 1; j <= 9; j ++) {
if (!used[j]) {
used[j] = true;
board[row][2] = j;
int k = 15 - i - j;
if (k > 0 && !used[k]) {
used[k] = true;
board[row][3] = k;
rowAt(row - 1);
used[k] = false;
}
used[j] = false;
}
}
used[i] = false;
}
}
}
}
int main(void) {
rowAt(3);
}
------------------------------------------------------------
输出:
4 3 8
9 5 1
2 7 6
6 1 8
7 5 3
2 9 4
2 7 6
9 5 1
4 3 8
8 1 6
3 5 7
4 9 2
2 9 4
7 5 3
6 1 8
8 3 4
1 5 9
6 7 2
4 9 2
3 5 7
8 1 6
6 7 2
1 5 9
8 3 4
Kavent
2003-10-10
打赏
举报
回复
幻方问题嘛~
服务器先raid还是先系统好,新的服务器是先装系统还是在
做
raid0
新的服务器是先装系统还是在
做
raid0关注:160答案:2mip版解决时间 2021-01-26 02:38提问者夜灬零乱花寂2021-01-25 12:00现在有一个全新的服务器没系统,还有两个2T的SSD,单独挂载。要我
做
raid0,系统ubuntu,,先装系统还是先
做
raid0,我完全是个新手。
求教
注意事项什么的最佳答案二级知识专家若爱会伤2021-01-25 13:242T的S...
GDB的使用
方法
--2
http://blog.chinaunix.net/uid-13703776-id-67894.html 简述 一 列文件清单 二:执行程序 三:显示数据 四:断点(breakpoint) 五.断点的管理 六.变量的检查和赋值 七. 单步执行 八.函数的调用 九.机器语言工具 十.信号
八字易经算法之用JAVA实现硬币卜卦辅助工具
世界上没有一种学问比预测未来更重要;而在全人类预测未来的学问中,没有一种比易经卜卦更重要;而在易经卜卦的所有
方法
中,用硬币卜卦是最简便、最常用的
方法
之一。 —— 陈嘉珉(http://www.chinavalue.net/General/Blog/2010-9-10/467876.aspx) 很多地方都有用硬币卜卦这个项目。 这里
做
一个辅助工具,帮助大家解卦。 首先要扫几个
《智慧书》格言大全(1-300)
《智慧书--永恒的处世经典》这本书谈的是知人观事、判断、行动的策略--使人在这个世界上功成名就且臻于完美的策略。全书由三百则箴言警句构成,这些箴言警句滋味绝佳而不可不与友朋同事分享共赏,又鞭辟入里而不能不蒙敌人对手于鼓里。本书的理想读者,是因日常事业而需与他人周旋应付者--他必须发现他人用心,赢得其好感与友谊,或反制其机谋及使他人意志一筹莫展。和所有警句一样,本书的读法是慢嚼细咽
不经意传输扩展(OTE)-不经意伪随机函数(OPRF)-隐私集合求交(PSI)
即上篇《Efficient Batched Oblivious PRF with Applications to Private Set Intersection》(CCS2016)的后续产物论文进行论文分享! 《SpOT-Light: Lightweight Private Set Intersection from Sparse OT Extension》(CRYPTO2019) 《Private Set Intersection in the Internet Setting From Light
数据结构与算法
33,010
社区成员
35,327
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章