3.9 變態跳臺階
阿新 • • 發佈:2018-12-25
變態跳臺階
一隻青蛙一次可以跳上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; }