青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

逛奔的蝸牛

我不聰明,但我會很努力

   ::  :: 新隨筆 ::  ::  :: 管理 ::

#include <iostream>
#include <cstdio>
#include <ctime>
#include <cmath>

using namespace std;

void queen(int** array, int row, FILE* fp);
bool isAvailable(int** array, int y, int x);
bool isResult(int** array);

int main(int arg, char** argv) {
        int** array;
        
        // 分配空間
        array = new int*[8];
        for (int i = 0; i < 8; i++) {
                array[i] = new int[8];
        }
        
        // 初始化皇后狀態
        for (int i = 0; i < 8; i++) {
                for (int j = 0; j < 8; j++) {
                        array[i][j] = 0;
                }
        }
        
        FILE* fp = fopen("data.txt", "w");
        queen(array, 0, fp);
        fclose(fp);
        
        // 釋放空間
        for (int i = 0; i < 8; i++) {
                delete[] array[i];
        }
        delete array;
        array = NULL;

        return 0;
}

void queen(int** array, int row, FILE* fp) {
        static int size = 1;
        if (row > 7) {
                return;
        }
        for (int j = 0; j < 8; j++) {
                // 如果合法
                if (isAvailable(array, row, j)) {
                        array[row][j] = 1;
                        
                        // 當前位置合法,賦值后,進入下一行
                        queen(array, row + 1, fp);

                        // 如果退回來后是結果,則打印出來
                        if (isResult(array)) {
                                // 把結果寫入文件
                                fputc('\n', fp);
                                fputs("***********************************", fp);
                                fprintf(fp, " %d ", size++);
                                fputs("***********************************", fp);
                                fputc('\n', fp);
                                for (int m = 0; m < 8; m++) {
                                        for (int n = 0; n < 8; n++) {
                                                if (array[m][n] == 1) {
                                                        fputc('#', fp);
                                                        fputc(' ', fp);
                                                        fputc(' ', fp);
                                                } else {
                                                        fputc('O', fp);
                                                        fputc(' ', fp);
                                                        fputc(' ', fp);
                                                }
                                        }
                                        fputc('\n', fp); 
                                }

                        }
                        array[row][j] = 0;

                }
        }
}

bool isAvailable(int** array, int row, int column) { // 第row行,column列
        int i, j;

        // 檢查row行
        for (i = 0; i < 8; i++) {
                if (array[row][i] != 0) {
                        return false;
                }
        }

        // 檢columnx列
        for (j = 0; j < 8; j++) {
                if (array[j][column] != 0) {
                        return false;
                }
        }

        // 檢查對角向左上
        i = row;
        j = column;
        while (i >= 0 && j >= 0) {
                if (array[i][j] != 0) {
                        return false;
                }
                i--;
                j--;
        }

        // 檢查對角向右上
        i = row;
        j = column;
        while (i >= 0 && j < 8) {
                if (array[i][j] != 0) {
                        return false;
                }
                i--;
                j++;
        }

        // 檢查對角向左下
        i = row;
        j = column;
        while (i < 8 && j >= 0) {
                if (array[i][j] != 0) {
                        return false;
                }
                i++;
                j--;
        }

        // 檢查對角向右下
        i = row;
        j = column;
        while (i < 8 && j < 8) {
                if (array[i][j] != 0) {
                        return false;
                }
                i++;
                j++;
        }

        return true;
}

bool isResult(int** array) {
        int size = 0; // 皇后個數

        // 統計皇后個數
        for (int i = 0; i < 8; i++) {
                for (int j = 0; j < 8; j++) {
                        if (array[i][j] != 0) {
                                size++;
                        }
                }
        }

        // 沒有8個皇后,說明不是結果

       // 有8個皇后,因為每個皇后的放置都是在合法位置, 所以只需要簡單的計算皇后個數就知道是不是結果.
        if (size != 8) {
                return false;
        }

        return true;
}

posted on 2010-12-17 17:51 逛奔的蝸牛 閱讀(417) 評論(0)  編輯 收藏 引用 所屬分類: C/C++
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            在线综合+亚洲+欧美中文字幕| 亚洲黄色免费| 亚洲美女电影在线| 一区二区在线视频播放| 欧美日韩视频在线| 亚洲激情视频| 亚洲免费视频在线观看| 国产精品久久久久久久久免费| 一区二区三区高清| 免费欧美在线视频| 日韩视频一区二区在线观看 | 欧美电影免费观看网站| 亚洲二区在线视频| 欧美成黄导航| 99国产精品| 久久精品99国产精品| 亚洲精品免费网站| 日韩网站在线观看| 亚洲午夜黄色| 国产精品美女久久久久久久| 欧美性色视频在线| 欧美成人中文| 99riav国产精品| 亚洲视屏在线播放| 奶水喷射视频一区| 欧美一区二区在线免费观看| 午夜精品久久久久久久99水蜜桃 | 国产日韩欧美精品一区| 欧美成人按摩| 欧美午夜电影在线| 国产一区二区三区观看| 国产精品乱子久久久久| 国产亚洲一区二区三区| 亚洲黄色一区| 午夜影院日韩| 亚洲欧美日韩在线一区| 久久久综合香蕉尹人综合网| 欧美一级大片在线免费观看| 久久亚洲一区| 美日韩精品免费| 久久精品视频在线看| 欧美电影免费观看大全| 久久精品青青大伊人av| 欧美国产日产韩国视频| 免费日韩精品中文字幕视频在线| 欧美激情导航| 欧美一级专区| 久久久久久伊人| 欧美在线视频不卡| 亚洲欧美国产日韩天堂区| 91久久精品一区| 在线观看av不卡| 久久综合国产精品台湾中文娱乐网| 性色av一区二区怡红| 亚洲欧美视频在线观看| 欧美成人一品| 影音先锋久久久| 欧美在线观看视频在线| 日韩网站在线观看| 欧美大片在线观看一区二区| 国产综合第一页| 亚洲级视频在线观看免费1级| 欧美一区二区三区精品电影| 亚洲日本激情| av不卡在线看| 欧美高清在线精品一区| 欧美午夜电影在线| 日韩亚洲欧美精品| 亚洲欧美视频一区二区三区| 久久国产精品久久久久久电车| 妖精视频成人观看www| 欧美高潮视频| 亚洲清纯自拍| 亚洲第一页自拍| 亚洲一区不卡| 亚洲综合国产激情另类一区| 欧美精品在线观看91| 欧美日韩精品二区第二页| 国产伦一区二区三区色一情| 国精品一区二区三区| 久久精品国产2020观看福利| 性欧美xxxx大乳国产app| 国产精品主播| 久久久久国内| 亚洲美女一区| 国产精品www网站| 久久国产高清| 一本色道88久久加勒比精品| 欧美综合激情网| 一区二区在线视频| 亚洲福利久久| 欧美色道久久88综合亚洲精品| 今天的高清视频免费播放成人 | 狠狠狠色丁香婷婷综合久久五月| 亚洲精品一区二区三区婷婷月| 欧美韩日精品| 欧美日韩综合精品| 午夜久久tv| 久久精品首页| 国产老肥熟一区二区三区| 欧美一区二区三区四区在线观看| 欧美一区二区在线视频| 亚洲国产成人精品久久| 亚洲精品永久免费精品| 国产精品制服诱惑| 亚洲国产精品视频| 欧美日韩精品在线视频| 久久噜噜噜精品国产亚洲综合| 黄色精品免费| 亚洲精品一二三区| 国产一区二区剧情av在线| 欧美激情亚洲视频| 国产精品日本| 亚洲综合国产激情另类一区| 亚洲啪啪91| 国产一区二区日韩精品欧美精品| 欧美凹凸一区二区三区视频| 欧美日韩亚洲视频| 免费看的黄色欧美网站| 欧美视频在线一区| 亚洲成人资源网| 麻豆精品在线视频| 一区二区三区自拍| 日韩视频免费在线| 亚洲动漫精品| 亚洲欧美一区二区精品久久久| 亚洲人成网站在线观看播放| 亚洲免费视频网站| 中文在线一区| 亚洲一区二区三区乱码aⅴ| 亚洲第一中文字幕| 久久综合99re88久久爱| 欧美视频一区二区三区在线观看| 免费日韩av| 国内精品一区二区| 午夜精品亚洲一区二区三区嫩草| 日韩一二在线观看| 久久亚洲国产精品一区二区| 一区二区三区在线视频免费观看| 中国av一区| 加勒比av一区二区| 亚洲永久精品国产| 亚洲在线一区| 欧美精品在线视频| 亚洲国产欧美精品| 亚洲欧洲一区二区三区久久| 久久青草欧美一区二区三区| 久久久www| 国语对白精品一区二区| 性色av一区二区怡红| 欧美伊人久久久久久久久影院| 欧美人与禽性xxxxx杂性| 91久久夜色精品国产网站| 亚洲欧洲精品一区二区三区不卡| 久久频这里精品99香蕉| 免费黄网站欧美| 亚洲日本成人在线观看| 欧美好吊妞视频| 日韩一区二区精品在线观看| 亚洲午夜在线观看| 国产精品一二三四| 欧美一区二区三区免费看| 久久婷婷丁香| 亚洲激情影视| 欧美精品在线看| 亚洲色图自拍| 久久久一区二区三区| 在线欧美影院| 欧美日韩午夜精品| 校园激情久久| 欧美寡妇偷汉性猛交| 一个色综合av| 美女被久久久| 91久久极品少妇xxxxⅹ软件| 在线视频欧美日韩| 国产女主播一区二区三区| 亚洲一区二区在线免费观看视频| 欧美区在线观看| 欧美va亚洲va国产综合| 亚洲经典视频在线观看| 欧美日韩在线看| 欧美亚洲一区二区三区| 欧美成人免费va影院高清| 亚洲久久一区| 国产日韩欧美成人| 欧美高清视频在线| 午夜在线电影亚洲一区| 欧美国产欧美亚洲国产日韩mv天天看完整 | 国产精品毛片一区二区三区| 欧美一区成人| 亚洲美女福利视频网站| 看欧美日韩国产| 国产日韩欧美一区在线| 噜噜噜在线观看免费视频日韩| 欧美高清视频免费观看| 亚洲欧美卡通另类91av| 亚洲激情国产| 国产一区二区欧美| 国产精品99免视看9| 久久亚洲私人国产精品va媚药|