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

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

c++遞歸實現n皇后問題代碼(八皇后問題)

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

還是先來看看最基礎的8皇后問題:

在8X8格的國際象棋上擺放八個皇后,使其不能互相攻擊,即任意兩個皇后都不能處于同一行、同一列或同一斜線上,問有多少種擺法。

擴展到N皇后問題是一樣的。
一看,似乎要用到二維數組。其實不需要。一維數組就能判斷,比如Arr[i],就可以表示一個元素位于第i行第Arr[i]列――應用廣泛的小技巧。而且在這里我們不用考慮去存儲整個矩陣,如果Arr[i]存在,那么我們在打印的時候,打印到皇后位置的時候輸出1,非皇后位輸出0即可。

這種思路的實現方式網上大把,包括前面提到的那位同學,所以也就不要糾結有沒有改善有沒有提高之類的了,權當一次練習即可。

直接上代碼好了,覺得遞歸方法沒什么好說的,空間想想能力好一點兒很容易理解。明天有空再寫寫非遞歸實現吧。

復制代碼 代碼如下:

/*
 * NQueen.cpp
 *
 *  Created on: 2013年12月23日
 *      Author: nerohwang
 */
//形參rowCurrent表示當前所到的行數
#include<iostream>
#include<fstream>
#include<iomanip>
#include<stdlib.h>
using namespace std;
bool Check(int rowCurrent,int *&NQueen);                         //判斷函數
void Print(ofstream &os,int n,int *&NQueen);                                  //打印函數
void Solve(int rowCurrent,int *&NQueen,int n,int &count, ofstream &os);           //N皇后問題處理函數,index一般初值為0


//判斷函數,凡是橫豎有沖突,或是斜線上有沖突,返回FALSE
bool Check(int rowCurrent,int *&NQueen)
{
    int i = 0;
    while(i < rowCurrent)
    {
        if(NQueen[i] == NQueen[rowCurrent] || (abs(NQueen[i]-NQueen[rowCurrent]) == abs(i-rowCurrent)) )
        {
            return false;
        }
        i++;
    }
    return true;
}

//將所有可能出現的結果輸出文本文檔
void Print(ofstream &os,int n,int *&NQueen)
{
    os<<"一次調用/n";
    for (int i = 0;i < n;i++) {
        for(int j = 0 ; j < n; j++)
        {
            os<<(NQueen[i]==j?1:0);
            os<<setw(2);
        }
        os<<"/n";
    }
    os<<"/n";
}

//核心函數。遞歸解決N皇后問題,觸底則進行打印
void Solve(int rowCurrent,int *&NQueen,int n,int &count, ofstream &os)
{
    if(rowCurrent == n)  //當前行數觸底,即完成了一個矩陣,將它輸出
    {
        Print(os,n,NQueen);
        count++;
    }
    for(int i = 0;  i < n; i++)
    {
        NQueen[rowCurrent] = i;                     //row行i列試一試
        if(Check(rowCurrent,NQueen))
        {
            Solve(rowCurrent+1,NQueen,n,count,os);  //移向下一行
        }
    }
}

int main()
{
    int n;           //問題規模
    int count = 0;   //解的計數
    cout<<"請輸入問題的規模N"<<endl;
    cin>>n;
    if(n<4)
    {
        cerr<<"問題規模必須大于4"<<endl;
        return 0;
    }
    int *NQueen = new int[n];
    ofstream os;
    os.open("result.txt");
    Solve(0,NQueen,n,count,os);
    cout<<"問題的解有"<<count<<"種方法"<<endl;
    os.close();
    return 0;
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久在线免费观看视频| 亚洲精品一区二区久| 国产免费一区二区三区在线观看| 精品国产31久久久久久| 久久精品中文字幕一区| 爽爽爽爽爽爽爽成人免费观看| 国产精品看片资源| 国产99久久精品一区二区| 清纯唯美日韩制服另类| 91sao在线观看国产| 免费成人高清视频| 欧美最近摘花xxxx摘花| 欧美午夜精品久久久久久人妖| 亚洲资源在线看| 九九热99久久久国产盗摄| 久久综合88中文色鬼| 久久亚洲国产精品| 高清一区二区三区日本久| 九色精品免费永久在线| 日韩精品久久久久| 亚洲精品成人免费| 国产精品视频一区二区高潮| 亚洲精品视频免费| 国产精品久在线观看| 国产精品久久久久久av| 亚洲福利精品在线| 97成人在线视频| 久久免费视频观看| 久久99久久久久久久噜噜| 一区二区三区回区在观看免费视频| 国产精品福利网| www日韩中文字幕在线看| 国产91对白在线播放| 国外成人免费在线播放| 亚洲va男人天堂| 国产福利成人在线| 91高潮在线观看| 久久电影一区二区| 欧美激情乱人伦| 欧美区二区三区| 国产a级全部精品| 6080yy精品一区二区三区| 久久99久久久久久久噜噜| 亚洲精品大尺度| 亚洲第一国产精品| 97免费视频在线| 久久久免费高清电视剧观看| 欧美国产日本高清在线| 最近2019好看的中文字幕免费| 国产精品男人的天堂| 色yeye香蕉凹凸一区二区av| 色综合久久久久久中文网| 国产精品久久久久久久久久久久久| 国产精品久久99久久| 一本色道久久综合狠狠躁篇怎么玩| 色噜噜狠狠狠综合曰曰曰88av| 日韩最新免费不卡| 欧美国产日韩一区二区三区| 亚洲精品国产综合区久久久久久久| 国产精品偷伦一区二区| 久久精品国产99国产精品澳门| 欧美精品在线免费播放| 疯狂蹂躏欧美一区二区精品| 亚洲欧美一区二区三区在线| 亚洲成人黄色网| 亚洲日本欧美日韩高观看| 欧美激情一区二区三区成人| 欧美视频在线看| 国产精品亚洲第一区| 成人黄色片在线| 国产精品香蕉国产| 久久久在线观看| 亚洲免费影视第一页| 亚洲黄色av女优在线观看| 色999日韩欧美国产| 国产va免费精品高清在线| 日韩最新免费不卡| 久久精品91久久久久久再现| 美女视频黄免费的亚洲男人天堂| 欧美自拍大量在线观看| 国产精品免费网站| 国产婷婷色综合av蜜臀av| 国产午夜精品麻豆| 亚洲精品久久久久久久久久久| 国产精品高潮呻吟久久av黑人| 亚洲专区在线视频| 亚洲黄色www网站| 全色精品综合影院| 国产亚洲精品成人av久久ww| 538国产精品视频一区二区| 亚洲人成绝费网站色www| 欧美成人全部免费| 久久久午夜视频| 精品国偷自产在线视频| 成人午夜一级二级三级| 曰本色欧美视频在线| 国产日韩在线亚洲字幕中文| 久久伊人91精品综合网站| 91精品国产自产在线观看永久| 久久久精品美女| 亚洲视频在线观看网站| 97热精品视频官网| 亚洲国产中文字幕在线观看| 日韩av三级在线观看| 一区二区在线免费视频| 中文字幕国产精品| 欧美亚洲国产另类| 91av国产在线| 国产精品高精视频免费| 日韩禁在线播放| 97在线精品视频| 5278欧美一区二区三区| 久久99久久99精品免观看粉嫩| 日韩最新在线视频| 亚洲精品成人av| 欧美另类第一页| 国内精品国产三级国产在线专| 欧美大尺度激情区在线播放| 91精品国产高清| 亚洲精品理论电影| 久久久噜久噜久久综合| 国产精品吴梦梦| 亚洲色图综合久久| 亚洲片国产一区一级在线观看| 伊人激情综合网| 成人久久18免费网站图片| 亚洲国产精品人久久电影| 欧美大学生性色视频| 中国china体内裑精亚洲片| 国产精品一区二区三区免费视频| 日韩综合视频在线观看| 亚洲一区二区三区香蕉| 中文字幕在线观看亚洲| 2019中文字幕在线| 黑人精品xxx一区| 成人黄色午夜影院| 欧美日韩精品二区| 色av吧综合网| 国产精品久久精品| 在线视频欧美日韩| 欧美老少做受xxxx高潮| 国产97在线亚洲| 日韩欧美在线观看| 亚洲欧美另类自拍| 国产精品视频地址| 成人久久一区二区三区| 国产色婷婷国产综合在线理论片a| 97精品一区二区视频在线观看| 国产精品视频在线观看| 成人免费观看网址| 国产成人一区二区三区| 热久久视久久精品18亚洲精品| 日韩成人久久久| 久久久黄色av| 亚洲欧美www| 精品偷拍各种wc美女嘘嘘| 国产精品中文字幕久久久| 国产精品久久久久av免费| 色综合久久久久久中文网| 97在线观看免费高清| 中文字幕亚洲一区| 91精品视频在线播放| 最新91在线视频| 这里精品视频免费|