动易网站模板免费常熟网站建设icp备案
动易网站模板免费,常熟网站建设icp备案,网站文章优化技巧,wordpress文章倒序题目描述
一只青蛙一次可以跳上1级台阶#xff0c;也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
解题思路
链接#xff1a;https://www.nowcoder.com/questionTerminal/22243d016f6b47f2a6928b4313c85387
关于本题#xff0c;前提是…题目描述
一只青蛙一次可以跳上1级台阶也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
解题思路
链接https://www.nowcoder.com/questionTerminal/22243d016f6b47f2a6928b4313c85387
关于本题前提是n个台阶会有一次n阶的跳法。分析如下:
f(1) 1
f(2) f(2-1) f(2-2) //f(2-2) 表示2阶一次跳2阶的次数。
f(3) f(3-1) f(3-2) f(3-3)
…
f(n) f(n-1) f(n-2) f(n-3) … f(n-(n-1)) f(n-n)
说明
这里的f(n) 代表的是n个台阶有一次1,2,…n阶的 跳法数。n 1时只有1种跳法f(1) 1n 2时会有两个跳得方式一次1阶或者2阶这回归到了问题1 f(2) f(2-1) f(2-2)n 3时会有三种跳得方式1阶、2阶、3阶
那么就是第一次跳出1阶后面剩下f(3-1);第一次跳出2阶剩下f(3-2)第一次3阶那么剩下f(3-3)
因此结论是f(3) f(3-1)f(3-2)f(3-3) n n时会有n中跳的方式1阶、2阶…n阶得出结论 f(n) f(n-1)f(n-2)…f(n-(n-1)) f(n-n) f(0) f(1) f(2) f(3) … f(n-1) 由以上已经是一种结论但是为了简单我们可以继续简化 f(n-1) f(0) f(1)f(2)f(3) … f((n-1)-1) f(0) f(1) f(2) f(3) … f(n-2) f(n) f(0) f(1) f(2) f(3) … f(n-2) f(n-1) f(n-1) f(n-1) 可以得出 f(n) 2*f(n-1) 得出最终结论,在n阶台阶一次有1、2、…n阶的跳的方式时总得跳法为
f(n) 1 ,(n0 )f(n) 1 ,(n1 )2*f(n-1),(n2)
代码实现
class Solution {
public:int jumpFloorII(int number) {if(number 0)return 1;if(number 1)return 1;if(number 1)return 2*jumpFloorII(number - 1);}
};
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/92137.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!