zoukankan      html  css  js  c++  java
  • 八皇后 递归or迭代

    递归:

    #include <iostream>
    #include <cstdlib>
    #include <cstdio>
    using namespace std;
    
    int que[8]={0},cc=0;
    void print()
    {
        cc++;
        cout<<cc<<':';
        for(int i=0;i<=7;i++)
            cout<<que[i]<<' ';
        cout<<endl;
    }
    int check(int c)
    {
        if(que[c]>8)return 0;
        for(int i=0;i<c;i++)
        {
            if(que[i]==que[c]||que[i]-que[c]==i-c||que[i]-que[c]==c-i)return 0;
        }
        return 1;
    }
    
    void queue8(int i)
    {
        if(i==8){print();return;}
        for(int j=1;j<=8;j++)
        {
            que[i]=j;
            if(check(i))queue8(i+1);
        }
    }
    
    int main()
    {
        queue8(0);
    }

    迭代:

    #include <iostream>
    #include <cstdlib>
    #include <cstdio>
    using namespace std;
    
    int que[8]={0},c,count;
    void print()
    {
        c++;
        cout<<c<<':';
        for(int i=0;i<=7;i++)
            cout<<que[i]<<' ';
        cout<<endl;
    }
    int check(int c)
    {
        if(que[c]>8)return 0;
        for(int i=0;i<c;i++)
        {
            if(que[i]==que[c]||que[i]-que[c]==i-c||que[i]-que[c]==c-i)return 0;
        }
        return 1;
    }
    
    void queue8()
    {
        int cc=0;
        while(count>=0&&count<=7)
        {
            que[count]++;
            if(check(count))
            {
                count++;
            }
            else if(que[count]>8)que[count]=0,count--;
            if(count>7){print();count--;}
        }
    }
    
    int main()
    {
        queue8();
    }
  • 相关阅读:
    Cookie的作用范围、设置、创建、获取的方法
    2020寒假总结14
    MyBatis中foreach传入参数为数组
    Springmvc接收数组参数
    寒假每日总结十
    2020寒假每日总结
    2020寒假总结八
    2020寒假每日总结七
    2020寒假每日总结四
    2020寒假总结三
  • 原文地址:https://www.cnblogs.com/8023spz/p/7217112.html
Copyright © 2011-2022 走看看