码迷,mamicode.com
首页 > 编程语言 > 详细

上楼梯问题(递归C++)

时间:2019-01-23 00:12:52      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:std   turn   nbsp   int   假设   font   楼梯   情况   ==   

【问题描述】

        小明上楼梯,一次可以迈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;
}

 

上楼梯问题(递归C++)

标签:std   turn   nbsp   int   假设   font   楼梯   情况   ==   

原文地址:https://www.cnblogs.com/dongks/p/10306638.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!