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

    #include <stdio.h> 
    
    char Chessboard[8][8]; 
    int QueenPlace(int LocX,int LocY); 
    int N_Queens(int LocX,int LocY,int Queens) 
    { 
    
        int i,j; 
        int Result=0; 
    
    if(Queens==8) 
        return 1; 
    else 
        if(QueenPlace(LocX,LocY)) 
        { 
            Chessboard[LocX][LocY]='Q'; 
            for(i=0;i<8;i++) 
                for(j=0;j<8;j++) 
                { 
                    Result+=N_Queens(i,j,Queens+1); 
                    if(Result>0) 
                    break; 
                } 
    
            if(Result>0) 
                return 1; 
            else 
            { 
                Chessboard[LocX][LocY]=' '; 
                return 0; 
            } 
        } 
        else 
            return 0; 
    } 
    
    int QueenPlace(int LocX,int LocY) 
    { 
        int i,j; 
        if(Chessboard[LocX][LocY]!=' ') 
        return 0; 
    
        for(j=LocY-1;j>=0;j--) 
        if(Chessboard[LocX][j]!=' ') 
        return 0; 
    
        for(j=LocY+1;j<8;j++) 
         if(Chessboard[LocX][j]!=' ') 
        return 0; 
    
        for(i=LocX-1;i>=0;i--) 
         if(Chessboard[i][LocY]!=' ') 
        return 0; 
    
        for(i=LocX+1;i<8;i++) 
         if(Chessboard[i][LocY]!=' ') 
        return 0; 
      
        i=LocX-1; 
        j=LocY-1; 
        while(i>=0 && j>=0) 
         if(Chessboard[i--][j--]!=' ') 
        return 0; 
    
        i=LocX+1; 
        j=LocY-1; 
        while(i<8 && j>=0) 
         if(Chessboard[i++][j--]!=' ') 
        return 0; 
    
        i=LocX-1; 
        j=LocY+1; 
        while(i>=0 && j<8) 
         if(Chessboard[i--][j++]!=' ') 
        return 0; 
    
        i=LocX+1; 
        j=LocY+1; 
        while(i<8 && j<8) 
         if(Chessboard[i++][j++]!=' ') 
        return 0; 
    
        return 1; 
    } 
    
    void main() 
    { 
        int i,j; 
        for(i=0;i<8;i++) 
            for(j=0;j<8;j++) 
                Chessboard[i][j]=' ';
    
        N_Queens(0,0,0); 
    
        printf("the graph of 8 Queens on the chessboard.
    "); 
        printf(" 0 1 2 3 4 5 6 7
    "); 
        printf(" +---+---+---+---+---+---+---+---+
    "); 
    
        for(i=0;i<8;i++) 
        { 
            printf(" %d |",i); 
            for(j=0;j<8;j++) 
                printf(" %c |",Chessboard[i][j]); 
            printf("
     +---+---+---+---+---+---+---+---+
    "); 
        } 
    }
    书搞进脑袋 创新 创造; 积极
  • 相关阅读:
    call 与 apply
    react-router
    阻止IOS上的弹性滚动
    React规范
    sessionStorage 、localStorage 和 cookie 对比区分
    显式Intent 和隐式 Intent 的区别
    Activity之间传递数据的方式及常见问题总结
    Android横竖屏切换生命周期变化
    String、StringBuilder、StringBuffer 区别
    内存泄漏
  • 原文地址:https://www.cnblogs.com/tobetterlife/p/12171005.html
Copyright © 2011-2022 走看看