跳台阶与变态跳台阶
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
1 class Solution { 2 public: 3 int jumpFloor(int number) { 4 int a=1, b=1; 5 for(int i=2; i<=number; ++i) { 6 int t = a+b; 7 b = a; 8 a = t; 9 } 10 return a; 11 } 12 };
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
1 class Solution { 2 public: 3 int jumpFloorII(int number) { 4 int res = 1; 5 int t = 0; 6 int count = 3; 7 for(int i=3; i<=number; ++i) { 8 res = res+count; 9 t = res; 10 count += res; 11 res = 1; 12 } 13 if(number == 1) return 1; 14 else { 15 if(number == 2) return 2; 16 else return t; 17 } 18 } 19 };