亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C++實現八皇后問題的方法

2020-01-26 15:21:26
字體:
來源:轉載
供稿:網友

本文實例展示了C++實現八皇后問題的方法,是數據結構與算法中非常經典的一個算法。分享給大家供大家參考之用。具體方法如下:

一般在八皇后問題中,我們要求解的是一個8*8的國際象棋棋盤中,放下8個皇后且互相不能攻擊的排列總數?;屎蟮墓舴秶鸀檎校?,以及其斜對角線。

由于皇后的攻擊范圍特性,注定我們每行只能放下一個皇后,于是我們要做的只是逐行放下皇后。八皇后問題是回溯法的典型問題。這里我們用的方法很簡單:

從第一行開始逐個檢索安全位置擺放皇后,一旦有安全位置則考慮下一行的安全位置。如果發現某行沒有安全位置,則返回上一行繼續檢索安全位置;如果發現在最后一行找到了安全位置則輸出整個棋盤。

原理很簡單,整個程序中表現了這個思想的函數是void Solve()

下面是實現的代碼:

 //八皇后問題的實現#include <iostream>#include <string>using namespace std;//QueenChess類聲明class QueenChess{   public:       QueenChess();     //構造函數       void Solve();     //求解八皇后問題,并給出放置成功的棋盤總個數    private:       string chessState[8];     //用于存放棋盤狀態       int solves;          //八個皇后放置成功的棋盤解的總個數       bool SafeJudge(int row,int col) const;  //判斷位置(row,col)是否安全       void PlaceQueen(int row);         //在第row行放置一個皇后       void DrawChess() const;          //打印八個皇后放置成功的棋盤 };//構造函數,將棋盤初始化QueenChess::QueenChess(){   solves=0;   int i=0,j=0;   for(;i<8;++i)   chessState[i]="--------";}//求解八皇后問題,并給出放置成功的棋盤總個數void QueenChess::Solve(){   //從第0行開始放置皇后   PlaceQueen(0);   cout<<"/n八皇后問題總共的解的個數是:"<<solves<<endl; }//在第row行的各列放置皇后void QueenChess::PlaceQueen(int row){   //窮盡第row行的所有列   for(int col=0;col<8;col++)   {       if(SafeJudge(row,col))       {           //位置(row,col)安全,則放一皇后            chessState[row][col]='Q';           //若還沒有放到第八行,則嘗試下一行           if(row<7)            PlaceQueen(row+1);           //已經放置了八個皇后,打印出成功的棋盤,并將解數加1           else           {             solves++;             DrawChess();           }        }//end if       //不安全,將該處的皇后拿走,嘗試下一列位置       chessState[row]="--------";    } }//判斷是否(row,col)是安全位置bool QueenChess::SafeJudge(int row,int col) const{   int qRow,qCol;   //檢查前面各行,看與前面的皇后是否發生攻擊   for(qRow=0;qRow<row;qRow++)   {      string rowState=chessState[qRow];      //尋找第qRow行放置皇后的列數      qCol=rowState.find("Q");      //如果兩個皇后在同一行、同一列或兩條對角線上,則說明該位置不安全      if(qRow==row||qCol==col||(qCol-qRow)==(col-row)||(qCol+qRow)==(col+row))         return false;    } //end if   return true;}//打印成功的棋盤void QueenChess::DrawChess() const{   int i,j;   cout<<"/n八皇后問題的第"<<solves<<" 個解為:"<<endl;   cout<<" 0 1 2 3 4 5 6 7"<<endl;   for(i=0;i<8;++i)   {      cout<<i<<" ";      for(j=0;j<8;++j)      cout<<chessState[i][j]<<" ";      cout<<endl;   } //end for   //每打印一個成功的八皇后棋盤,暫停一下   //system("pause"); }//main函數進行測試 int main(){  QueenChess chess;  chess.Solve();  system("pause");  return 0; }

希望本文所述實例對大家C++算法設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色综合老司机第九色激情| 欧美另类极品videosbest最新版本| 欧洲成人在线视频| 亚洲第一级黄色片| 日韩在线观看免费av| 精品亚洲一区二区三区四区五区| 国产精品网址在线| 国产精品久久久久久久久久ktv| 在线播放日韩专区| 91久久精品日日躁夜夜躁国产| 综合激情国产一区| 国产综合在线观看视频| 欧美一级视频一区二区| 77777少妇光屁股久久一区| 欧美肥臀大乳一区二区免费视频| 欧美一区二区三区图| 欧美一区二区色| 日韩电影免费观看中文字幕| 欧美xxxx综合视频| 91精品国产91久久久| 久久久97精品| 黑人与娇小精品av专区| 日韩免费观看在线观看| 亚洲天堂第一页| 91黄色8090| 国产精品美女视频网站| 992tv成人免费影院| 亚洲精品白浆高清久久久久久| 亚洲欧洲在线播放| 欧美裸体视频网站| 亚洲成色777777在线观看影院| 欧美特级www| 日韩**中文字幕毛片| 最新国产精品亚洲| 一区二区欧美久久| 午夜精品久久久久久久99热浪潮| 国产美女扒开尿口久久久| 91丨九色丨国产在线| 欧美华人在线视频| 欧美大成色www永久网站婷| 精品中文字幕在线| 国产视频精品xxxx| 亚洲日韩中文字幕在线播放| 久久午夜a级毛片| 亚洲日韩欧美视频一区| 精品国产乱码久久久久久天美| 精品国产一区二区三区四区在线观看| 成人av资源在线播放| 国产一区视频在线播放| 91精品国产自产在线观看永久| 成人h视频在线观看播放| 亚洲欧美综合另类中字| 自拍偷拍亚洲精品| 91亚洲一区精品| 成人午夜在线观看| 日韩在线观看免费高清| 欧美福利小视频| 国产综合福利在线| 久久精品99久久久久久久久| 97精品久久久| 成人日韩av在线| 国产精品永久免费视频| 国产一区二区三区日韩欧美| 国产一区二区黄| 欧美日韩aaaa| 久久久久中文字幕| 国产一区二区三区视频在线观看| 国产精品九九九| 亚洲国产欧美日韩精品| 亚洲视频在线免费看| 97人洗澡人人免费公开视频碰碰碰| 色视频www在线播放国产成人| 日本高清视频精品| 欧美国产欧美亚洲国产日韩mv天天看完整| 欧美最猛性xxxxx免费| 毛片精品免费在线观看| 久久这里有精品视频| 国产日韩欧美中文在线播放| 欧美在线视频一区| 国产精品久久久久77777| 欧美在线激情网| 中文字幕日韩在线观看| 欧美老少做受xxxx高潮| 国产精品专区一| 国产精品综合网站| 欧美性20hd另类| 亚洲成人免费网站| 欧美自拍视频在线观看| 国产综合视频在线观看| 久久久亚洲网站| 欧美美女18p| 美女啪啪无遮挡免费久久网站| 欧美视频国产精品| 国产精品爽爽ⅴa在线观看| 国产精品露脸av在线| 亚洲自拍欧美另类| 欧美疯狂性受xxxxx另类| 欧美日韩成人精品| 亚洲日韩欧美视频| 日韩电影免费观看在线观看| 欧美视频在线免费| 精品少妇一区二区30p| 亚洲亚裔videos黑人hd| 5566成人精品视频免费| 亚洲欧美资源在线| 亚洲欧美中文日韩v在线观看| 日韩av三级在线观看| 57pao成人国产永久免费| 欧美精品福利在线| 在线国产精品播放| 九九精品在线播放| 九九热精品视频在线播放| 亚洲精品成人网| 精品久久久在线观看| 亚洲精品美女视频| 欧美黄色性视频| 日韩欧美第一页| 国产伊人精品在线| 欧美高清在线视频观看不卡| 久久亚洲春色中文字幕| 欧美—级a级欧美特级ar全黄| 亚洲欧美日韩高清| 最近2019年日本中文免费字幕| 日韩精品免费在线| 精品人伦一区二区三区蜜桃网站| 日韩成人中文电影| 精品一区二区电影| 久久综合88中文色鬼| 九九视频直播综合网| 日韩欧美一区二区三区| 国产欧美一区二区三区久久| …久久精品99久久香蕉国产| 中文字幕日韩欧美在线| 亚洲国产精品免费| 日韩高清人体午夜| 欧美成aaa人片免费看| 91理论片午午论夜理片久久| 97精品一区二区视频在线观看| 国产成人啪精品视频免费网| 日韩精品视频三区| 九九久久久久99精品| 一区三区二区视频| 一区二区三区四区在线观看视频| 久久99亚洲精品| 久久夜精品香蕉| www国产亚洲精品久久网站| 日韩中文字幕视频| 国产精品亚洲美女av网站| 91精品国产精品| 国模吧一区二区| 亚洲国产精品女人久久久| 国产欧亚日韩视频| 91国产视频在线播放| 亚洲精品456在线播放狼人| 亚洲性猛交xxxxwww| 日韩在线视频国产| 亚洲精品v天堂中文字幕| 亚洲视频在线免费观看| 精品久久久久久久久久久久久久| 国产91热爆ts人妖在线| 国产精品欧美日韩久久| 国产在线视频91| 久久99亚洲精品| 九色成人免费视频|