题目描述
一天一只顽猴想去从山脚爬到山顶,途中经过一个有个N个台阶的阶梯,但是这猴子有一个习惯:
每一次只能跳1步或跳3步,试问猴子通过这个阶梯有多少种不同的跳跃方式?
输入描述
输入只有一个整数N(0<N<=50)此阶梯有多少个台阶。
输出描述
输出有多少种跳跃方式(解决方案数)。
用例
输入 | 50 |
输出 | 122106097 |
说明 | 无 |
输入 | 3 |
输出 | 2 |
说明 | 无 |
题目解析
这题是一道经典的分治算法题、以及动态规划基础题。
这题既可以使用分治递归来自顶向下地求解,也可以使用动态规划递推地自底向上求解。
但是动态规划的效率更高。
这题和fibnaci数列很像,递归公式如下: