八皇后問題
八皇后問題,輸出了所有情況,不過有些結(jié)果只是旋轉(zhuǎn)了90度而已。(回溯算法的典型例題,是數(shù)據(jù)結(jié)構(gòu)書上算法的具體實(shí)現(xiàn),大家都親自動(dòng)手寫過這個(gè)程序嗎?)
#define N 8
int Board[N][N];
int Valid(int i, int j) { // 判斷下棋位置是否有效
int k = 1;
for(k=1; i>=k && j>=k;k++)
if(Board[i-k][j-k]) return 0;
for(k=1; i>=k;k++)
if(Board[i-k][j]) return 0;
for(k=1; i>=k && j+k if(Board[i-k][j+k]) return 0;
return 1;
}
void Trial(int i, int n) { // 尋找合適下棋位置
if(i == n) {
for(int k=0; k for(int m=0; m printf(“%d “, Board[k][m]);
printf(“\n”);
}
printf(“\n”);
} else {
for(int j=0; j Board[i][j] = 1;
if(Valid(i,j))
Trial(i+1, n);
Board[i][j] = 0;
}
}
}
int main(int argc, char* argv[]) {
Trial(0, N);
}
【八皇后問題】相關(guān)文章:
皇后呂雉勵(lì)志故事10-29
關(guān)于幽默笑話的故事皇后命10-15
中國肚皮舞皇后溫可馨的故事06-25
八大刁鉆面試問題01-01
簡歷模板八大問題06-30
朱元璋擺皇后宴百家姓名人故事01-02
影響簡歷水平的八個(gè)問題08-07
80后的八個(gè)心理問題07-30