最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

八皇后問題實現(xiàn)代碼分享

 更新時間:2014年02月28日 09:47:16   作者:  
八皇后問題,是一個古老而著名的問題,是回溯算法的典型案例,這篇文章主要介紹了八皇后問題實現(xiàn)代碼,需要的朋友可以參考下

main.cpp

復(fù)制代碼 代碼如下:

#include<iostream>
#include<cstring>

using namespace std;

const int N = 7;

int count = 0;

void QueenPrint(int LayOut[N][N])  //打印結(jié)果
{
 cout<<"第"<<++count<<"種布局:"<<endl;
 for(int i = 0; i < N; i++)
 {
  for(int j = 0; j < N; j++)
  {
   if(LayOut[i][j] == 1)
   {
     cout<<' '<<'Q'<<' ';
   }
   else
   {
    cout<<' '<<'*'<<' ';
   }
  }
  cout<<endl;
 }
 cout<<endl;
}
bool Queen(int LayOut[N][N], const int i, const int j)  //判斷LayOut[i][j]是否適合放置皇后
{
 int k1 = 0;
 for(; k1 < N; k1++)   //判斷該行有沒有皇后
 {
  if(LayOut[i][k1] == 1)
  {
   return false;
  }
 }
 int k2 = 0;
 for(; k2 < N; k2++ )  //判斷該列有沒有皇后
 {
  if(LayOut[k2][j] == 1)
  {
   return false;
  }
 }

 int t1 = i,t2 = j;                   //判斷左上有沒有皇后
 for(;t1 >= 0 && t2 >= 0;t1--,t2-- ) 
 {
   if(LayOut[t1][t2] == 1)
  {
   return false;
  }
 }

 int n1 = i, n2 = j;                 //判斷右上有沒有皇后
 for(;n1 >= 0 && n2 < N;n1--,n2++ )
 {
   if(LayOut[n1][n2] == 1)
  {
   return false;
  }
 }

 return true;
}
/*
void EightQueen(int LayOut[N][N],int i, int j) // i為行,j為列
{

 if( i < N  )
 {
   if( j < N)
   {
    if(Queen(LayOut,i,j))
    {
     LayOut[i][j] = 1;
     j = 0;
     EightQueen(LayOut,i+1, j);
    }
    else
    {
     EightQueen(LayOut,i, j+1);

    }

   }
 }
 else
 {
  QueenPrint(LayOut);
 }

}*/

void EightQueen(int LayOut[N][N],int i) // i為行

 if( i == N)
 {
  QueenPrint(LayOut);
  //memset( LayOut, 0, sizeof(LayOut));
 }
 else
 {

  int j = 0;
  for( ; j < N; j++ )
  {
   if( Queen( LayOut, i, j))
   {
    LayOut[i][j] = 1;
    EightQueen( LayOut,i+1);
    LayOut[i][j] = 0;
   } 
  }

 }
}


int main()
{
 int LayOut[N][N];
 memset( LayOut, 0, sizeof(LayOut));
 EightQueen(LayOut,0);
 cout<<"共"<<count<<"中結(jié)果!"<<endl;
 return 0;
}

相關(guān)文章

  • C++如何將vector數(shù)字寫入到txt文件中

    C++如何將vector數(shù)字寫入到txt文件中

    這篇文章主要介紹了C++如何將vector數(shù)字寫入到txt文件中問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • C/C++位操作實例總結(jié)

    C/C++位操作實例總結(jié)

    這篇文章主要介紹了C/C++位操作實例總結(jié),是C/C++程序設(shè)計中很重要的概念,需要的朋友可以參考下
    2014-08-08
  • C語言實現(xiàn)線性動態(tài)(單向)鏈表的示例代碼

    C語言實現(xiàn)線性動態(tài)(單向)鏈表的示例代碼

    本文主要介紹了C語言實現(xiàn)線性動態(tài)(單向)鏈表的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • C++ 實現(xiàn)L2-002 鏈表去重

    C++ 實現(xiàn)L2-002 鏈表去重

    這篇文章主要介紹了C++ 實現(xiàn)L2-002 鏈表去重,本文通過簡要的案例,解題思路講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • cmake跨平臺構(gòu)建工具的學(xué)習(xí)筆記

    cmake跨平臺構(gòu)建工具的學(xué)習(xí)筆記

    CMake是一個跨平臺的安裝/編譯工具,通過CMake我們可以通過簡單的語句來描述所有平臺的安裝/編譯過程,下面這篇文章主要給大家介紹了關(guān)于cmake跨平臺構(gòu)建工具的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • 用C語言畫一個圓

    用C語言畫一個圓

    大家好,本篇文章主要講的是用C語言畫一個圓,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • C語言實現(xiàn)簡單計算器功能(1)

    C語言實現(xiàn)簡單計算器功能(1)

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)簡單計算器功能的第一部分,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • C++ STL 四種智能指針的用法詳解

    C++ STL 四種智能指針的用法詳解

    C++ 標(biāo)準(zhǔn)模板庫 STL(Standard Template Library) 一共給我們提供了四種智能指針:auto_ptr、unique_ptr、shared_ptr 和 weak_ptr,今天給大家詳細(xì)介紹這幾種指針的具體用法,需要的朋友參考下吧
    2021-06-06
  • C語言代碼實現(xiàn)掃雷游戲

    C語言代碼實現(xiàn)掃雷游戲

    這篇文章主要為大家詳細(xì)介紹了C語言代碼實現(xiàn)掃雷游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • C語言 文件的打開與關(guān)閉詳解及示例代碼

    C語言 文件的打開與關(guān)閉詳解及示例代碼

    本文主要介紹C語言 文件的基礎(chǔ)知識,這里整理了相關(guān)資料及示例代碼,有興趣的小伙伴可以參考下
    2016-08-08

最新評論

九龙坡区| 河池市| 陆良县| 蒙自县| 京山县| 彭水| 密云县| 五河县| 咸丰县| 南宁市| 甘德县| 安龙县| 綦江县| 武宣县| 万盛区| 怀集县| 同心县| 白水县| 喀什市| 绥阳县| 兰考县| 洞头县| 循化| 务川| 温泉县| 普宁市| 繁昌县| 夏河县| 梧州市| 乌兰察布市| 宁都县| 沾化县| 东乡| 定结县| 黄冈市| 开原市| 梅州市| 陕西省| 东阳市| 临西县| 鹰潭市|