zoukankan      html  css  js  c++  java
  • 八皇后问题

    八皇后问题递归算法如下,在win-tc和tc2.0下已调试通过:
    #include <math.h>
    #include <stdio.h>
    #define MAX 8 /* 棋子数及棋盘大小MAXxMAX */
    int board[MAX];
    
    /* 印出结果 */
    void show_result()
    {
        int i;
        for(i=0;i<MAX;i++)
     printf("(%d,%d)",i,board[i]);
        printf("\n");
    }
    
    /* 检查是否在同一直横斜线上有其它棋子 */
    int check_cross(int n)
    {
        int i;
        for(i=0;i<n;i++){
     if(board[i]==board[n] || (n-i)==abs(board[i]-board[n]))return 1;
        }
        return 0;
    }
    
    /* 放棋子到棋盘上 */
    void put_chess(int n)
    {
        int i;
        for(i=0;i<MAX;i++){
     board[n]=i;
     if(!check_cross(n)){
         if(n==MAX-1) show_result();/* 找到其中一种放法了...印出结果 */
         else put_chess(n+1);
     }
        }
    }
    
    void main()
    {
        clrscr();
        puts("The possible placements are:");
        put_chess(0);
        puts("\n Press any key to quit...");
     getch();
        return;
    }
  • 相关阅读:
    JPA01
    mybatis入门
    PHP 循环- While循环
    PHP超级全局变量
    PHP 数组排序
    PHP数组
    PHP Switch语句
    PHP IF...Else语句
    PHP运算符
    PHP字符串变量
  • 原文地址:https://www.cnblogs.com/djcsch2001/p/2035145.html
Copyright © 2011-2022 走看看