八皇后
問題,是乙個古老而著名的問題,是
回溯演算法
的典型案例。該問題是國際西洋棋棋手馬克斯·貝瑟爾於2023年提出:在8×8格的西洋棋上擺放八個皇后,使其不能互相攻擊,即任意兩個皇后都不能處於同一行、同一列或同一斜線上,問有多少種擺法。
c語言實現:
#include int ba[8][8]=;
int count = 0;
int check(int row ,int column)
for ( i = 0; i < row; ++i) }
for ( i = 0; i < column; ++i) }
i=row-1;
j=column-1;
while(i>=0 && j>=0)
i--;
j--;
} //右上
i=row-1;
j=column+1;
while(i>=0 && j<8)
i--;
j++;
} return 1;
}void print()
printf("\n");
} printf("\n");
}void solve(int row)else
} //回溯
ba[row][column]=0; }}
int main(int argc, char const *argv)
N皇后擺放問題
description input 共有若干行,每行乙個正整數n 10,表示棋盤和皇后的數量 如果n 0,表示結束。output 共有若干行,每行乙個正整數,表示對應輸入行的皇后的不同放置數量。sample input18 50sample output192 10解題思路 用dfs。一行一行的擺放...
八皇后問題
八皇后問題 ackarlix 八皇后問題是乙個古老而著名的問題,是回溯演算法的典型例題。該問題是十九世紀著名的數學家高斯 1850 年提出 在 8x8格的西洋棋上擺放八個皇后,使其不能互相攻擊,即任意兩個皇后都不能處於同一行 同一列或同一斜線上,問有多少種擺法。高斯認為有 76種方案。1854 年在...
八皇后問題
include iostream.h int a 8 8 棋盤 int r 8 結果 int i,j int count 0 void init i j 0 int judge int x,int y for int mi x 1,mj y mi 1 mi for int ri x 1,rj y 1...