华为OD机试 - 猴子爬山(Python)

 题目描述

一天一只顽猴想去从山脚爬到山顶,途中经过一个有个N个台阶的阶梯,但是这猴子有一个习惯:

每一次只能跳1步或跳3步,试问猴子通过这个阶梯有多少种不同的跳跃方式?

输入描述

输入只有一个整数N(0

输出描述

输出有多少种跳跃方式(解决方案数)。

用例

输入 50
输出 122106097
说明
输入 3
输出 2
说明

题目解析

这题是一道经典的分治算法题、以及动态规划基础题。

这题既可以使用分治递归来自顶向下地求解,也可以使用动态规划递推地自底向上求解。

但是动态规划的效率更高。

这题和fibnaci数列很像,递归公式如下:

你可能感兴趣的:(Py,华为OD机试AB卷,华为od,python,算法)