哪位大佬能帮帮忙,万分感谢
查看原帖
哪位大佬能帮帮忙,万分感谢
677589
hanzuorui楼主2023/7/29 10:29

八皇后结果出错,调试了半天了,(C语言<stdio.h>,用的是最简单的dfs)

#include <stdio.h>
int ans,a[9];
bool check(int n)
{
   for(int i=1;i<n;i++)
   {
   	if(a[n]==a[i]||a[n]+n==a[i]+i||a[n]-n==a[i]-i)
   	{
   		return 0;
   	}
   	return 1;     
   }
}
void dfs(int n)
{
   if(n==9)
   {
   	ans++;
   }
   else
   {
   	for(int i=1;i<=8;i++)
   	{
   		a[n]=i;
   		if(check(n)==1)
   		{
   			dfs(n+1);
   		}
   	}
   }
}
int main()
{
   dfs(1);
   printf("%d",ans);
   return 0;
}

万分感谢

2023/7/29 10:29
加载中...