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

    N皇后问题
    在n×n格的棋盘上放置彼此不受攻击的n个皇后。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n皇后问题等价于再n×n的棋盘上放置n个皇后,任何2个皇后不妨在同一行或同一列或同一斜线上。
     
     
    #include <cstring>
    #include <cstdio>
    
    int num;
    int a[15];
    
    void trial(int i, int n)
    {
        if(i == n){
            num++;
            return;}
        else{
            for(int m=0;m<n;m++){
                int ok = 1;
                a[i] = m;
                for(int j=0;j<i;j++)
                    if(a[i]==a[j]||i-a[i]==j-a[j]||i+a[i]==j+a[j])
                    {
                        ok = 0;
                        break;
                    }
                if(ok)
                    trial(i+1,n);
    
            }
    
        }
    }
    
    int main()
    {
        int N;
        while(scanf("%d",&N) == 1 && N!=0)
        {
            num = 0;
            memset(a,0,sizeof(a));
            trial(0, N);
            printf("%d
    ",num);
        }
        return 0;
    }
    1。void *memset(void *s,int c,size_t n)
    总的作用:将已开辟内存空间 s 的首 n 个字节的值设为值 c。

    2。例子
    #include

    void main(){
    char *s="Golden Global View";

    clrscr();

    memset(s,'G',6);
    printf("%s",s);

    getchar();
    return 0;
    } 
    3。memset() 函数常用于内存空间初始化。如:
    char str[100];
    memset(str,0,100);

    4。memset()的深刻内涵:用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为‘ ’或‘/0’;例:char a[100];memset(a, '/0', sizeof(a));

     

  • 相关阅读:
    各种快递查询Api接口(快递鸟)
    验证码识别,发票编号识别
    ugui自制摇杆。
    个人网站
    unity访问php
    其实我是学文学的
    unity发布ios游戏总结
    Unity连接本地数据库sqlite
    gcc中gdb调试工具的使用
    windows系统下调试uCOS-II
  • 原文地址:https://www.cnblogs.com/smuxiaolei/p/7505204.html
Copyright © 2011-2022 走看看