거슬러 올라가다--팔황후

5517 단어 팔황후
#include <stdio.h>

#define N 8

int matrix[N][N];    // 
int cnt;

int Jude(int row, int col)
{
    int i,j;
    for (i = 0; i < row; i++)
    {
        for (j = 0; j < N; j++)
        {
            if (matrix[i][j] == 1)
                if( j == col || i + j == row + col
                || i - j == row - col || j - i == col -row
                || i + j == row + col)
            {
                return -1;
            }
        }
    }
    return 0;
}

void Print()
{
    int row, col;
    for (row = 0; row < N; row ++)
    {
        for (col = 0; col < N; col++)
        {
            printf("%d ",matrix[row][col]);
        }
        printf("
"); } printf("
"); } int Queen(int row) { int col, ret; if (N == row) { Print(); cnt ++; return 0; } for (col = 0; col < N; col++) { ret = Jude(row,col); if (0 == ret) { matrix[row][col] = 1; Queen(row + 1); matrix[row][col] = 0; } } if (col == N) return -1; // return 0; } int main() { cnt = 0; Queen(0); printf("Total: %d
",cnt); return 0; } 2013/11/10 10:40 cost:40

좋은 웹페이지 즐겨찾기