|
#include <stdio.h>
#define N 10
int steped[N];
int i=0;
void steping(int n){ \\走楼梯
if(n==0){ \\已走完
for(int j=0;j<i;j++){
printf(" %d ",steped[j]); \\打印
}
printf("\n");
}
if(n>=1){ \\若剩下的阶梯数大等于1
steped[i++]=1; \\迈1个阶梯
steping(n-1); \\走剩下的阶梯
i--; \\退一个阶梯,寻找其它上法
}
if(n>=2){ \\若剩下的阶梯数大等于2
steped[i++]=2;待 \\迈两个阶梯
steping(n-2); \\走剩下的阶梯
i--; \\退两个阶梯,寻找其它上法
}
if(n>=3){ \\同上.....略
steped[i++]=3;
steping(n-3);
i--;
}
}
void main(){
int n;
n=N;
steping(n);
}
|