1 青蛙跳台阶-斐波那契数列-矩形覆盖问题

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

青蛙跳台阶可以转化为一个数学问题,这就是斐波拉契数列问题,只要是这种类型的问题都可以这样求解

求斐波那契数列的第 n 项,n <= 39。

我们可以用 21 的小矩形横着或者竖着去覆盖更大的矩形。请问用 n 个 21 的小矩形无重叠地覆盖一个 2*n 的大矩形,总共有多少种方法?

深度截图_选择区域_20190507201101.png

深度截图_选择区域_20190507201753.png

这道题可以用递归求解,会方便对题目的理解 ,但是要是采用递归的话会导致空间的浪费。很多时候都会限制空间,所采用动态规划

代码如下


public class jump {

public static  void main(String[] args) {

jump j=new jump();

int q=j.myjump(5);

System.out.println(q);

}

public int myjump(int n){

if (n<=2)

return n;

int pre2=1;

int pre1=2;

int re=1;

for (int i=2;i

re=pre1+pre2;

pre2=pre1;

pre1=re;

}

return re;

}

}

你可能感兴趣的:(1 青蛙跳台阶-斐波那契数列-矩形覆盖问题)