青蛙跳台阶算法,每次可以跳1级或两级,请问有n级台阶,有多少种算法,递归和非递归如何写
递归实现:
public int JumpFloor(int n) { if (n <
0) return 0; int[] fibArry = { 0, 1, 2
}; if (n < 3) return fibArry[n];
return JumpFloor(n - 1) + JumpFloor(n - 2); }
非递归实现:
public int JumpFloor(int n) { if (n
< 0) return 0; int[] fibArry =
{ 0, 1,2 }; if (n < 3) return
fibArry[n]; long nReturn = 0L; long
fibFirst=1L; long fibTow=2L; for (int
i = 3; i <= n; i++) { nReturn =
fibFirst + fibTow; fibFirst=fibTow ;
fibTow = nReturn; }
return nReturn; }