0
已解决
张岳恒
资深光能
资深光能
#include<iostream>
using namespace std;
int dfs(int);
int print();
int n,r,a[1000001]={0};
bool b[1000001]={0};
int main(){
cin>>n>>r;
dfs(1);
return 0;
}
int dfs(int k){
for(int i=1;i<=n;i++){
if(!b[i]){
a[k]=i;
b[i]=1;
if(k==r){
print();
}
else dfs(k+1);
b[i]=0;
}
}
}
int print(){
for(int i=1;i<=r;i++){
cout<<a[i]<<' ';
}
cout<<endl;
}
代码,无法按照字典序输出
张岳恒在2020-04-05 09:27:50追加了内容
@包涵宇 帮我看下
张岳恒在2020-04-06 16:58:46追加了内容
没人来答吗?答出正确答案我增加悬赏
张岳恒在2020-04-07 13:20:26追加了内容
dalao们快来!帖沉了!!!!!
0
已采纳
董子墨
中级天翼
中级天翼
你的错误:
一、dfs和print函数的类型是void
二、因为输出是递增的,你应该从a[k-1]+1开始dfs里的循环,这样就不用b数组了
0
余彦文
初级光能
初级光能
张岳恒,你学到哪了?
问题①,print函数应该定义成void类型。
问题②,dfs函数没有返回值,print也没有。
问题③,dfs函数中用上了自己,可能会卡。
ps:你用了什么黑魔法让它输出的?
我只能用我学过的知识帮你,请见谅。
0
0
0