题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
思路:
按照我上一题跳台阶的思路就好了,但因为这次青蛙能够一次跳n阶(变厉害了。。。),因此需要一直考虑到n-1的情况
n = 1时,f(1) = 1
n = 2时,f(2) = 2
n = 3时,f(3) = f(2) + f(1) + 1 //这里加1是因为青蛙也能一次能跳n阶
n = 4时,f(4) = f(3)(先跳1阶) + f(2)(先跳2阶) + f(1)(先跳3阶) +1(直接跳4阶)//如果看不懂的话请看反白
……
n = n时,f(n) = f(n-1) + f(n-2) + …… + f(1) + 1
我用了一个vector来保存前n-1次的情况,提前放了一个0进去是为了保证下标与序号是对应的,而且也可以直接从1开始初始计算。