有一段楼梯有8段台阶,规定每一步可跨一级两级或三级,要登上第八级台阶,有几种不同的走法

如题所述

要登上8级台阶共有34种不同走法。

解答:解:第一级:只跨1步,有1种。

第二级:(1、1),(2),有2种。

第三级:(1、1、1),(1、2),(2、1),有1+2=3种。

第四级:(1、1、1、1),(1、1、2),(2、1、1),(2、2),(1、2、1),有2+3=5种。

第五级:有3+5=8种。

可以发现从第三次开始,后一种情况总是前两种情况的和。

所以,第六级:有5+8=13种。

第七级:有8+13=21种。

第八级:有13+21=34种。

本题考查了裴波那契数列,实际这就是著名的兔子数列。

斐波那契数列含义:

斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34在数学上。

斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-23

我这里把地面当作第0段台阶,跨一步就到第一段台阶,总共8层台阶
这种考虑和爬楼梯是不一样的,因为楼梯的2楼其实才爬了一层,而地面已经算作是1楼了(虽然称作1楼,但其实还没有开始爬)。

一、分析过程:
登上第1段:1种
登上第2段:2种   (要么是从第1级直接迈上来2层,要么分两次各跨一层才到第2层)
登上第3段:4种     (可以从第1级直接迈上来三层;也可以先到第一层,再直接跨两层;也可以先到第二层,再跨一层;还可以分三次分别跨一层)
登上第4段: 1 +  2 + 4  =  7种(要么从第1级迈上来;要么从第2级迈上来;要么从第3级迈上来,所以是前面三层方式之和)
登上第5段: 2 +  4 + 7  = 13种
登上第6段: 4 +  7 + 13 = 24种 (要么从第3级迈上来;要么从第4级迈上来;要么从第5级迈上来,所以是前面三层方式之和)
登上第7段: 7 + 13 + 24 = 44种
登上第8段:13 + 24 + 44 = 81种(要么从第5级迈上来;要么从第6级迈上来;要么从第7级迈上来,所以是前面三层方式之和)

.........
登上第9段: 24 + 44 +  81 = 149种
登上第10段:44 + 81 + 149 = 274种(要么从第7级迈上来;要么从第8级迈上来;要么从第9级迈上来,所以是前面三层方式之和)
.........

所以到第八段台阶的答案为: 81种.


二、列成表格形式:
台阶         规定每一步最多3段台阶            规定每一步只最多2段台阶        每一步只能跨两级或三级
地面   f(n) = f(n-1) + f(n-2) + f(n-3)       f(n) = f(n-1) + f(n-2)       f(n) = f(n-2) + f(n-3)
1段                 1种            1种           0种 
2段                 2种            2种           1种 
3段                 4种            3种           1种 
4段                 7种            5种           1种 
5段                13种            8种           2种 
6段                24种           13种           2种 
7段                44种           21种           3种 
8段                81种              34种              4种
9段               149种           55种           5种 
10段              274种           89种           7种 
        
11段              504种          144种           9种 
12段              927种          233种          12种 
13段             1705种          377种          16种 
14段             3136种          610种          21种 
15段             5768种          987种          28种 
16段            10609种         1597种          37种 
17段            19513种         2584种          49种 
18段            35890种         4181种          65种 
19段            66012种         6765种          86种 
20段           121415种        10946种         114种 
                
11段           223317种        17711种         151种 
22段           410744种        28657种         200种 
23段           755476种        46368种         265种 
24段          1389537种        75025种         351种 
25段          2555757种       121393种         465种 
26段          4700770种       196418种         616种 
27段          8646064种       317811种         816种
28段         15902591种       514229种        1081种
........
 

本回答被提问者采纳
第2个回答  2017-12-03
上台阶问题可以看成一个跟Fibonacci数有关的问题。
fibonacci递推式。f[i]=f[i-1]+f[i-2];
前提:f[0]=1,f[1]=1.
所以有34种上第八层的方法。
#include<iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int f[15];
f[1] = 1;
f[2] = 2;
for (int i = 3; i <= n; ++i)
f[i] = f[i - 1] + f[i - 2];
cout << f[n] << endl;
return 0;
}
第3个回答  2015-02-05
12
相似回答