n皇后

    技术2022-05-19  18

    // n皇后.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <conio.h> #define MAX 32 void ShowResult(int data[][32], int n) {     for (int i = 0; i < n; ++i)     {         for (int j = 0; j < n; ++j)         {             printf("-", data[i][j]);         }         printf("/n");     }     printf("/n"); } bool IsCurrentPosFeasible(int data[][32], int line, int row, int n) {     bool bReturn;     for (int i = 0; i < n; ++i)     {         if ((1 == data[line][i]) || (1 == data[i][row]))         {             return false;         }     }     for (int i = 0; i < line; ++i)     {         for (int j = 0; j < n; ++j)         {             bReturn = ((i + j == line + row || i - j == line - row) && (1 == data[i][j]));             if (true == bReturn)             {                 return false;             }         }     }     return true; } void NQueen(int data[][32], int line, int n) {     if (line > n - 1)     {         ShowResult(data, n);         getch();         return ;     }     for (int i = 0; i < n; ++i)     {         if (IsCurrentPosFeasible(data, line, i, n))         {             data [line][i] = 1;             NQueen(data, line + 1, n);             data[line][i] = 0;         }     } } int _tmain(int argc, _TCHAR* argv[]) {     int data[MAX][MAX] = {0};     NQueen(data, 0, 25);     return 0; }


    最新回复(0)