一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
解题思路:看过有网上有特解的方法,但是我感觉不合适,因为想解法应该是找到普遍的规律才应该算是中规中矩。当不知道解题思路的就可以先将前几次,比如说有 1,2,3,4,5级台阶的跳法算出来,比较简单还是可以手算的,就应该发现规律了。
1 | 2 | 3 | 4 | 5 | 6 | ... | n | |
跳法 | 1 | 2 | 3 | 5 | 8 | 13 | ... |
f(n-1)+ f(n-2) |
通过前面的跳法数,可以发现规律,f(n) = f(n-1) + f(n-2)
解题代码:
int Solution::jumpFloor(int number)
{
int result;
if (number == 1)
{
return 1;
}
if (number == 2)
{
return 2;
}
result = jumpFloor(number - 1) + jumpFloor(number - 2);
return result;
}
测试结果:
`Nobody
原创文章 22获赞 18访问量 465
关注
私信
展开阅读全文
作者:`Nobody