創新工場 筆試 八皇后問題

來源:互聯網
上載者:User

其實沒那麼難

int count = 0;           //統計棋局個數int queen[9] = {0};        //表示第column列填的棋子是在第 queen[column] 行//該函數表示填充column列的棋子void eight_queen( int column ){               if( column>0 && column <9 ){             //填子while( ++queen[column] <9){int ok=1; //輔助變數,協助判斷棋子能不能填for(int i=1;i<column; ++i){                 //測試不能填棋子的情況if( queen[column]==queen[i] || column-i == queen[column]-queen[i] || column-i == queen[i]-queen[column] ){ ok=0;break;}}if( 1 == ok) {                //能填棋子的話,對後面的元素初始化for(int i=column+1;i<9;++i)queen[i]=0;eight_queen(column+1);}}}else if( 9 == column){            //表示這已經成功填入了8個皇后for( int i=1; i<9; ++i){std::cout<< 8 * ( queen[i] -1 ) +i<<'\t';}count++;std::cout<<std::endl;return -1;}}int main(void){    eight_queen(1);    std::cout<<"count="<<count<<std::endl;    getchar();    return 0;} 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.