1. 程式人生 > >3.9 變態跳臺階

3.9 變態跳臺階

變態跳臺階

一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。
思路:
式一: f(n) = f(1)+f(2)…+f(n-2)+f(n-1)
式二: f(n-1) = f(1)+f(2)…+f(n-2)
相減: f(n) - f(n-1) = f(n-1) ==========> f(n) = 2* f(n-1)\
方法一: 遞迴
int jumpFloorII(int number) {
       if(number <= 1){
           return 1;
       }
       if(number == 2){
           return 2;
       }
       return 2 * jumpFloorII(number-1);
}
測試一:

在這裡插入圖片描述

方法二: 迴圈
int jumpFloorII(int number) {
      if(number == 0){
           return 0;
       }
       if(number == 1){
           return 1;
       }
       if(number == 2){
           return 2;
       }

       int jumpNum = 0;
       int jumpLastNum = 2;
       for( int i = 3;i<= number; ++i){
           jumpNum = 2*jumpLastNum;
           jumpLastNum = jumpNum;
       }
       return jumpNum;
}
測試二:

在這裡插入圖片描述