一隻青蛙一次能夠跳上1級臺階,也能夠跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(前後次序不一樣算不一樣的結果)。函數
分析:假定跳n級臺階的方法是關於n的函數F(n),如今要跳n級臺階,若是最後一次跳了1步,那麼前面的(n-1)級有F(n - 1)種跳法;spa
若是最後一次跳了兩步,則前面的(n - 2)級有F(n - 2)種跳法,即F(n) = F(n - 1) + F(n - 2),n > 2。(斐波那契數列)code
1 namespace JianZhiOffer 2 { 3 class JumpFloor 4 { 5 public int jumpFloor(int number) 6 { 7 // write code here 8 int one = 1; 9 int two = 2; 10 int three = 0; 11 12 if (number < 1) 13 { 14 return 0; 15 } 16 else if (number == 1) 17 { 18 return 1; 19 } 20 else if (number == 2) 21 { 22 return 2; 23 } 24 else 25 { 26 //return (jumpFloor(number - 1) + jumpFloor(number - 2)); 27 for (int i = 3; i <= number; i++) 28 { 29 three = one + two; 30 one = two; 31 two = three; 32 } 33 return three; 34 } 35 } 36 } 37 }