跳台阶进阶
一个台阶总共有 n 级,可以一次跳到 n 阶台阶,也可以一 次跳 n-1 阶台阶,也可以跳 n-2 阶台阶……也可以跳 1 阶台阶。
问跳到 n 层台阶有多少种跳法?(n<=50)
输入格式:
输入台阶数
输出格式:
输出种类数
输入样例:
3
输出样例:
4
罗列结果观察有
n F(n)
1 1
2 2
3 4
4 8
…
分析第一次起跳有n种跳法,即可以跳(1~n)阶的任意阶
对应有
第一次跳一阶 接下来跳法为F(n-1)
第一次跳二阶 接下来跳法为F(n-2)
…
第一次跳n-1阶 接下来跳法为F(1)
所以
F(n) = F(n-1) + F(n-2) + … +F(2) + F(1)
则
F(n-1) = F(n-2) + … +F(2) + F(1)
做差
F(n) = 2* F(n-1) = 2^(n-1)
那么问题来了,我们不禁要问为什么F(n) = 2^(n-1)?
解释:
我们每次可以跳任意阶台阶,这代表除去最后一个台阶,
其余的n-1阶台阶都只有两种情况 跳或不跳(也就是说我们整个跳跃过程中是否会停留在这节台阶上)
即F(n) = 2^(n-1);