小白正在上楼梯,楼梯有n阶台阶,小白一次可以上1阶,2阶,3阶。
实现一个方法,计算小白有多少种上楼梯的方式。
输出:台阶数量。
输出:多少种上楼梯的方式
例如:4阶楼梯 有7种方式(输入4,输出7)
思路:递归的方法。 倒着来思考,假设他现在站在最顶层,他每一次只能有三种方案,
一次一阶,两阶,三阶,而这些方案加起来,等于他上的总阶数,即:
f(n)=f(n-1)+f(n-2)+f(n-3),表达式和斐波拉契数列的表达式看起来很像,思路也有些
类似,这个问题有三个分支,算法的复杂度是O(3^n)。
设n阶台阶的走法数为f(n)。如果只有1个台阶,走法有1种(一步上1个台阶),即f(1)=1;如果有2个台阶,走法有