一句代码不懂
查看原帖
一句代码不懂
327346
xiaoyu20070727楼主2020/7/19 14:13

代码如下

#include<bits/stdc++.h>
using namespace std;
int ans[14],sum=0,n;
bool a[4][29];
void dfs(int i)
{
	if(i>n)
	{
		sum++;
		if(sum>3)return;
		
		cout<<endl;
		return;
	}
	for(int j=1;j<=n;j++)
	{
		if(!a[1][j]&&!a[2][i+j]&&!a[3][i-j+n])
		{
			ans[i]=j;
			a[1][j]=1;
			a[2][i+j]=1;
			a[3][i-j+n]=1;
			dfs(i+1);
			a[1][j]=0;
			a[2][i+j]=0;
			a[3][i-j+n]=0;
		}
	}
}
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
	cin>>n;
	dfs(1);
	cout<<sum;
	
	return 0;
}

其中第11行的for(int i=1;i<=n;i++)cout<<ans[i]<<" "; 中的i不明白,我改成别的(列如k,j或者别的字母)为什么都是输出0,改成i就正确

2020/7/19 14:13
加载中...