一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法
1 package com.algorithm; 2 3 public class FogJump { 4 //一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 5 //这是一种变化的菲波那切数列,是1,2,3,5,8的形式 6 public int JumpFloor(int target) { 7 int one = 1;//第一项 8 int two = 2;//第二项 9 if(target <= 0)//如果小于等于0,返回0 10 return 0; 11 if(target == 1 )//如果是第一项,返回1 12 return 1; 13 if(target == 2)//如果是第二项,返回2 14 return 2; 15 while(target-- > 2){ 16 two += one;//返回项 17 one = two - one;//返回项的前一项 18 } 19 return two; 20 } 21 public static void main(String[] args) { 22 System.out.println(new FogJump().JumpFloor(24)); 23 } 24 }