2019-12-22
//*************************************************************************************
//* 程序名: 下楼问题 *
//* 编制时间 2017/10/18 *
//* 编制人 小小书童 *
// 问题描述: 从楼上到楼下一共 h 个台阶 ,每一步有三种走法, 1个 台阶 2 个台阶 , *
// 3个台阶 ,求总共有多少中走法 *
//*************************************************************************************
#include <iostream>
using namespace std;
int run[1000] ; //记录走过的过程
int ways = 0 ; //方案数
void Try(int h , int id) // h 表示楼梯的阶数 , id 记录数组的 标号
{
int i ;
for( i=3 ; i> 0 ;i--){ // 3种 不同的选择
if(h<i){
continue ; //如果楼梯数 < 0 , 方案 不成立 , 故什么也不做
}
else {
run[id] = i ;
if(h==i){
ways++ ;
cout<<"方案数 "<<ways <<":" ;
for(int j = 1 ; j<= id ;j++)
cout<<run[j]<<" " ;
cout<<endl ;
}
else {
Try(h-i,id+1) ;
}
}
}
}
int main()
{
int h = 0 ;
cout<<"请输入楼梯的阶梯数 :" <<endl ;
cin>> h ;
Try(h,1) ;
return 0;
}
来源:CSDN
作者:小小书童ss
链接:https://blog.csdn.net/qq_39992933/article/details/103655240