青蛙跳台阶

题目描述

一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

思路

自己举几个例子很容易找到这个是一个含有规律的问题,也就是当青蛙跳了一阶/二阶/…/n阶后,再继续进行上一步类似的操纵,直到跳完为止。

f ( 0 ) = 1 ; f(0) = 1; f(0)=1;
f ( 1 ) = 1 ; f(1) = 1; f(1)=1;
f ( 2 ) = f ( 1 ) + f ( 0 ) = 2 ; f(2) = f(1) + f(0) = 2; f(2)=f(1)+f(0)=2;
f ( 3 ) = f ( 2 ) + f ( 1 ) + f ( 0 ) = 4 ; f(3) = f(2) + f(1) + f(0) = 4; f(3)=f(2)+f(1)+f(0)=4;
f ( 4 ) = f ( 3 ) + f ( 2 ) + f ( 1 ) + f ( 0 ) = 8 ; f(4) = f(3) + f(2) + f(1) + f(0) = 8; f(4)=f(3)+f(2)+f(1)+f(0)=8;

解答

即: f ( n ) = 2 f ( n − 1 ) f(n) = 2f(n-1) f(n)=2f(n1) f ( 1 ) = 1 ; f(1) = 1; f(1)=1; 推出通项公式 2 ( n − 1 ) 2^(n-1) 2(n1)

public class Solution {
    public int JumpFloorII(int target) {
        if(target == 0 || target==1) return 1;
        return clac(target - 1);
    }
    
    private int clac(int a){
        int re = 1;
        for(int i=0;i<a;i++){
            re *= 2;
        }
        return re;
    }
}
©️2020 CSDN 皮肤主题: 创作都市 设计师:CSDN官方博客 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值