算法(9)疯狂跳台阶
2018-11-07 本文已影响4人
猪_队友
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
这个问题首先看是很难看出来的,那只好自己写写画画找找规律。
笨方法:
f(1) = 1
f(2)= 2
f(3)= 4
f(4)= 8
貌似发现什么了,有时间的同学可以算算f(5),我是数不下去了。
分析法:
f(n)= f(n-1)+f(n-2)+...+f(2)+f(1)
f(n-1)= f(n-2)+f(n-3)+...+f(2)+f(1)
突然想买一本高中数学书看看了,好熟悉的公式啊~~
结果就是f(n) = 2*f(n-1)
哇咔咔,答案这么简洁的吗?
就是 1 2 4 8 16 32 吗?
好吧在下年少无知请多包涵。
public static int JumpFloorII(int target) {
if (target <= 0) {
return 0;
}
return 1<<--target;
}