题目: 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
分析: n阶台阶,第一步有n种跳法:跳1级,...,跳n级 跳1级,剩下n-1级,则剩下跳法是f(n-1) 跳2级,剩下n-2级,则剩下跳法是f(n-2) f(n)=f(n-1)+f(n-2)+...+f(1) f(n-1)=f(n-2)+f(n-3)+...+f(1) 所以f(n)=2*f(n-1)
Java
package nowcoder;
public class S9_JumpFloorII {
public int jumpFloorII(int number){
if (number <= 0)
return -1;
else if (number == 1)
return 1;
else
return 2*jumpFloorII(n-1);
}
public static void main(String[] args){
S9_JumpFloorII s9 = new S9_JumpFloorII();
System.out.print(s9.jumpFloorII(4));
}
}
Python
class JumpFloorII:
def jumpFloorII(self, number):
if number <= 0:
return -1
elif number==1:
return 1
else:
return 2*self.jumpFloorII(number-1)
if __name__ == '__main__':
test = JumpFloorII()
print(test.jumpFloorII(4))