C++求所有的三阶魔方阵(深度优先探索)
来源:互联网 发布:淘宝卖家能延长收货吗 编辑:程序博客网 时间:2024/06/05 15:17
#include <iostream>#define DefaultSize 9using namespace std;class Grial{public:Grial(int sz=DefaultSize){visted = new bool [sz];data = new int [sz];size = sz;for(int i=1;i<=sz;i++){visted[i]=0;}}bool check(int a[]){if( ((data[1]+data[2]+data[3])== (data[4]+data[5]+data[6]))&&((data[4]+data[5]+data[6])==(data[7]+data[8]+data[9]))&&((data[1]+data[4]+data[7])==(data[2]+data[5]+data[8]))&&((data[2]+data[5]+data[8])==(data[3]+data[6]+data[9]))&&((data[1]+data[2]+data[3])==(data[1]+data[5]+data[9]))&&((data[1]+data[2]+data[3])==(data[3]+data[5]+data[7])))return true;return false;}void Insert(int start){if(start==size+1){int k = 0;if(check(data)){for(int i=1;i<=size;i++){cout<<data[i];k++;if(k%3==0)cout<<endl;}cout<<"--------------------"<<endl;}}else{for(int i=1;i<=size;i++){if(visted[i]==0){data[start]=i;visted[i]=1;Insert(start+1);visted[i]=0;}}}}private:int size;bool *visted;int *data;};int main(){Grial g(9);g.Insert(1);return 0;}
结果是:
2 7 6 9 5 1 4 3 8 --------------------2 9 4 7 5 3 6 1 8 --------------------4 3 8 9 5 1 2 7 6 --------------------4 9 2 3 5 7 8 1 6 --------------------6 1 8 7 5 3 2 9 4 --------------------6 7 2 1 5 9 8 3 4 --------------------8 1 6 3 5 7 4 9 2 --------------------8 3 4 1 5 9 6 7 2 --------------------
1 1
- C++求所有的三阶魔方阵(深度优先探索)
- C语言算法:深度优先探索
- 三阶魔方CFOP复原的C语言算法
- 三阶魔方还原C语言程序
- C 用DFS(深度优先搜索)求连通块个数
- 三阶魔方的还复
- 三阶魔方 从顶部写的
- 图(三)图的遍历(深度优先和广度优先)
- c语言奇数阶魔方阵的实现
- 三阶魔方还原
- 三阶魔方教程
- 三阶魔方 js
- 三阶魔方还原
- 图的深度优先搜索 c代码
- 图的遍历 -深度优先—C
- 魔方阵的实现 C语言
- 魔方阵的实现(C语言)
- c语言:实现奇数阶魔方阵
- 《数值分析》2.1
- Jenkins+Ant+Java+Junit+SVN使用总结
- webservice的服务端和客户端的创建
- Ruby on Rails总结(二)
- webService创建服务器与客户端
- C++求所有的三阶魔方阵(深度优先探索)
- P2P技术基础
- QT 动态创建对象
- Ruby on Rails总结(三)
- Codeforces Round #301 (Div. 2)---D. Bad Luck Island(概率dp)
- 实现整单优惠下的折扣改变的一个算法
- POJ 3616 Milking Time
- Ruby on Rails总结(四)
- 开始我的博客之旅