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;
    }
  • 相关阅读:
    51串口通信
    juicer使用备忘
    51单片机音乐盒程序
    最精简24L01程序--接收
    sqlserver 数据库迁移
    sqlserver自增主键
    js keycode
    tabindex 去掉虚线
    div 绑定keyup
    sqlserver 当前时间减去30天
  • 原文地址:https://www.cnblogs.com/djcsch2001/p/2035145.html
Copyright © 2011-2022 走看看