关于c
#include<stdio.h>int a,book,n;
void dfs(int step){
int i;
//2
if(step == n+1){
for(i=1;i<=n;i++)
printf("%d",a);
printf("\n");
//1
return;
}
for(i=1;i<=n;i++){
if(book == 0){
a = i;
book = 1;
dfs(step+1);
//?
book = 0;
}
}
return;
}
int main(){
scanf("%d",&n);
dfs(1);
getchar();
return 0;
}
什么时候才能执行book = 0这个语句?
先执行dfs(step+1)这个,然后进行2处的if判断,如果为真,就接着执行1处的return,然后整个函数结束 递归到setp+1=n
页:
[1]