<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      leiyahui

      紙上得來終覺淺,絕知此事要躬行
      八皇后問題求解

      八皇后問題是編程人員需要解決的重要得問題

      它可以用遞歸來解決,但是遞歸的效率并不太高,也可以用數據結構來解決,因為只需要記錄有還是沒有,所以說用二維數組就OK,數據結構不用太復雜。

      另外可以這樣想,既然結果只是記錄有還是沒有,所以說不用二維數組,把數組改為一維數組,只用記錄是在哪一行,哪一列就OK。

      如int a[8];

      a[i]=3表示第i行的位置是在3

      所以說這樣用一維數組就可以表示出位置。

      代碼如下

      #include<stdio.h>
      #include<stdlib.h>
      #include<math.h>
      #define INTABLE  -1
      void Init(int* a ,int n)        //初始化
      {
          int i;
          for (i = 0; i < n; i++)
          {
              a[i] = INTABLE;
          }
      }
      int IsValid(int* a, int row, int col)        //判斷第row行,第col列是否可以放皇后,行和列從0開始
      {
          int i = 0;
          for (i = 0; i < row-1;i++)
          {
              if (a[i] == col || abs(i - row) == abs(a[i] - col))        //如果列沖突或者對角線沖突
              {
                  return 0;
              }
          }
          return 1;
      }
      void print(int* a,int n)        //打印出正確的解
      {
          int i;
          for (i = 0; i < n; i++)
          {
              printf("%d,%d\n", i, a[i]);
          }
      }
      void queue()        //隊列
      {
          int a[8];
          Init(a,8);
          int i = 0;
          int j = 0;
          int m = 1;
          while (i < 8)
          {
              while (j < 8)
              {
                  if (IsValid(a, i, j))
                  {
                      a[i] = j;
                      j = 0;
                      break;
                  }
                  else
                  {
                      j++;
                  }
              }
              if (a[i] == INTABLE)        //如果說這一行沒有合適的位置
              {
                  if (i == 0)        //回到第一行仍然沒有合適的位置,則說明所有的已經遍歷,退出該函數
                  {
                      break;
                  }
                  i--;
                  j = a[i] + 1;
                  a[i] = INTABLE;
                  continue;
              }
              
              if (i == 7)        //說明已經遍歷到最后一行,找到了一個合適的解,打印出來
              {
                  printf("%d", m);
                  print(a, 8);        //打印出正確的解
                  j = a[i] + 1;
                  a[i] = INTABLE;
                  m++;
                  continue;

              }
              i++;

          }
      }
      int main()
      {
          queue();    //輸出所有數組
          getchar();
      }

       

      //未完待續,回頭再寫

      posted on 2015-11-26 17:54  雷大叔  閱讀(318)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 久久精品国产男包| 成人无码区免费视频| 亚洲an日韩专区在线| 亚洲人成小说网站色在线 | 狠狠干| 樱花草视频www日本韩国| 人人爽亚洲aⅴ人人爽av人人片| 综合偷自拍亚洲乱中文字幕| 成人区人妻精品一区二区| 精品国产免费一区二区三区香蕉| 国产成人高清亚洲综合| 看亚洲黄色不在线网占| 色欲综合久久中文字幕网| 国产做无码视频在线观看| 久久午夜电影网| 国产av寂寞骚妇| 玩弄放荡人妻少妇系列| 97精品尹人久久大香线蕉| 国产国拍精品av在线观看| 日本丶国产丶欧美色综合| 久久影院九九被窝爽爽| 凤阳县| 国产三级精品三级在线区| 亚洲av永久无码精品漫画| 国产精品久久国产精品99 gif| 国产精品国产三级国产专i| 国产极品视频一区二区三区| 亚洲综合在线日韩av| 国产成人AV男人的天堂| 国产午夜福利不卡在线观看| 国产精品乱码久久久久久小说 | 亚洲乱理伦片在线观看中字| 中文字幕成熟丰满人妻| 欧美大胆老熟妇乱子伦视频| 2021国产成人精品久久| 18禁无遮挡啪啪无码网站| 正在播放国产对白孕妇作爱| 国产99在线 | 免费| 精品自拍自产一区二区三区| 国产绿帽在线视频看| 偷窥少妇久久久久久久久|