【问题描述】
小明上楼梯,一次可以迈1步,2步和3步,假设楼梯共有n个台阶,输出他所有的走法.
【代码展示】
#include<iostream>
using namespace std;
int a[100];
void louti(int index,int n){
//递归边界:满足条件则输出行走步数
if(n==0){
for(int i=0;i<index;i++){
cout << a[i] << " ";
}
cout << endl;
return;
}
//走1步的情况
if(n>=1){
a[index]=1;
index++;
louti(index,n-1);
index--;
}
//走2步的情况
if(n>=2){
a[index]=2;
index++;
louti(index,n-2);
index--;
}
//走3步的情况
if(n>=3){
a[index++]=3;
louti(index,n-3);
index--;
}
}
int main(){
int n;
cin >> n;
louti(0,n);
return 0;
}
原文地址:https://www.cnblogs.com/dongks/p/10306638.html
时间: 2024-10-27 01:00:23