N皇后问题(递归做法)

    xiaoxiao2021-03-25  89

    //回溯算法 #include<iostream> #include<memory.h> #include<math.h> using namespace std; int a[101]; int n=4; int sum=0,flag=0; void digui(int k) { if(k==n+1) { sum++; return; } for(int i=1;i<=n;i++) { a[k]=i; flag=1; for(int j=1;j<k;j++) { if(a[k]==a[j]||abs(k-j)==abs(a[k]-a[j])) { flag=0; break; } } if(flag==1) digui(k+1); } } int main() { sum=0; digui(1);//递归的入口是1 cout<<sum<<endl; }
    转载请注明原文地址: https://ju.6miu.com/read-15770.html

    最新回复(0)