题解 | #跳台阶#
跳台阶
http://www.nowcoder.com/practice/8c82a5b80378478f9484d87d1c5f12a4
此题需要找出青蛙跳的规律:当只有一节台阶时,一共只有一种方法(1);当有两阶时,共有两种方法—(11,2);当有三节时,共有3种方法(111,12,21);当有四节时,共有5种方法(1111,112,121,211,22)……由此可见,当有n节台阶时,青蛙共有f(n-1)+f(n-2)种方式,因此,可采用斐波那契数列方式解题,如下:
int jumpFloor(int number) { int a = 1; int b = 2; int ret = 0; if(number == 1) return 1; if(number == 2) return 2; for (int i = 3; i < number + 1 ; ++i) { ret = a + b; a = b; b = ret; } return ret; }