JAVA青蛙跳台阶问题

JAVA青蛙跳台阶问题

问题

问题:青蛙面对一个台阶时跳一次可以上去,面对两个台阶可以选择一次跳两个或者每次跳一个跳两次,面对三个台阶同样可以一次跳两个或跳一个跳三次…,青蛙可以一次跳一个台阶或跳两个台阶,问:当有N个台阶时有多少中跳法?

首先总结规律如下:

一个台阶:1种跳法;
两个台阶:2种跳法;
三个台阶:3种跳法;
四个台阶:5种跳法;
五个台阶:8种跳法;
。。。。。
N个台阶的跳法为(N-1)个台阶跳法+(N-2)个台阶的跳法;

代码:

通过递归实现:`

static int frogjump(int n){
    
    
        if(n ==1){
    
    
            return 1;
        }else if(n ==2){
    
    
            return 2;
        }else{
    
    
            return frogjump(n-1)+frogjump(n-2);
        }
    }

通过循环实现:

static int frogjump2(int n ){
    
    
        if(n==1){
    
    
            return 1;
        }else if(n==2){
    
    
            return 2;
        }else{
    
    
            int a = 1;
            int b = 2;
            int tmp = 0;
            for(int i=3;i<=n;i++){
    
    
                tmp = a+b;
                a = b;
                b = tmp;
            }
            return tmp;
        }

猜你喜欢

转载自blog.csdn.net/weixin_44712669/article/details/110876968
今日推荐