改之前,我的代码是这样的
#include<bits/stdc++.h>
using namespace std;
int n,k;
int check[15],ans[15];
void dfs(int pos)
{
if (pos==k+1)
{
for(int i=1;i<=k;i++)
{
cout << ans[i]<<" ";
}
cout << endl;
return;
}
for(int i = 1; i <= n; i ++)
{
check[i]=1;
ans[pos]=i;
dfs(pos + 1);
check[i]=0;
}
}
int main()
{
cin >> n>>k;
dfs(1);
return 0;
}
1:ac 2:wa
但是改成这样
#include<bits/stdc++.h>
using namespace std;
int n,k;
int check[15],ans[15];
void dfs(int pos)
{
if (pos==k+1)
{
for(int i=1;i<=k;i++)
{
cout << ans[i]<<" ";
}
cout << endl;
return;
}
for(int i = 1; i <= n; i ++)
{
check[i]=1;
ans[pos]=i;
dfs(pos + 1);
check[i]=0;
}
}
int main()
{
cin >> k>>n;
dfs(1);
return 0;
}
AC了 ???大佬可以解释一下吗