注册 登录
编程论坛 C语言论坛

大佬协助蒟蒻找出错误吧

楚川杉 发布于 2020-03-18 01:40, 1559 次点击

只有本站会员才能查看附件,请 登录

下面是我的代码,
输入6,的结果是
只有本站会员才能查看附件,请 登录


看了好久,依然没找出哪儿里错了。也许眼尖的你可以帮我找出错误。

程序代码:
#include<iostream>
#include<stdio.h>
using namespace std;
int n;
const int N=30;
int path[N];
bool col[N],dg[N],udg[N];
int sum;
void dfs(int u){
    if(u>n){
        sum++;
        if(sum>3)return;
        else{
        for(int i=1;i<=n;i++)printf("%d ",path[i]);
        printf("\n");
        return;
        }
        
        }
    for(int i=1;i<=n;i++){
        if((!col[i])&&(!dg[n+u-i])&&(!udg[i+u])){
            path[u]=i;
            col[i]=true,dg[n+i-u]=true,udg[i+u]=true;
            dfs(u+1);
            col[i]=false,dg[n+i-u]=false,udg[i+u]=false;
        
        }
    }
   
}
int main(){
    cin>>n;
    dfs(1);
    cout<<sum;
    return 0;
   
}
0 回复
1