用1*3的小矩形去无重叠的覆盖一个20*3的大矩形的方法有多少种?
2018-03-28 10:16
357 查看
思路分析
分析,3* 20的覆盖方法记为f(20),用第一个1*3的小矩形去覆盖最左边的时候有两种可能:横着放或者竖着放。竖着放右边还剩下3*19,横着放,上面两块也必须是横着放,所以还剩下3* 17,因此f(20)=f(19)+f(17),更加一般的情况f(n)=f(n-1)+f(n-3),感觉像是斐波那契数列的变种
代码展示
分析,3* 20的覆盖方法记为f(20),用第一个1*3的小矩形去覆盖最左边的时候有两种可能:横着放或者竖着放。竖着放右边还剩下3*19,横着放,上面两块也必须是横着放,所以还剩下3* 17,因此f(20)=f(19)+f(17),更加一般的情况f(n)=f(n-1)+f(n-3),感觉像是斐波那契数列的变种
代码展示
public class Demo1 { //递归 public static int Fibonacci(int k) { if (k == 0) { return 0; } if (k == 1 || k == 2) { return 1; } if (k == 3) { return 2; } return Fibonacci(k - 1) + Fibonacci(k - 3); } //非递归,数组 public static int Fibonacci1(int k) { int [] arr=new int [k+1]; arr[1]=1; arr[2]=1; arr[3]=2; for(int i=4;i<=k;i++) { arr[i]=arr[i-1]+arr[i-3]; } return arr[k]; } public static void main(String[] args) { System.out.println(Fibonacci1(20)); a3e6 } }
相关文章推荐
- 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
- 动态规划之----我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
- c语言:用8个2*1的小矩形横着或竖着无重叠地覆盖一个2*8的大矩形,总共有多少种方法?
- c语言:用8个2*1的小矩形横着或竖着无重叠地覆盖一个2*8的大矩形,总共有多少种方法?
- 矩形覆盖-我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
- 【矩形覆盖问题分析】 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
- 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
- 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
- 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
- 斐波那契数列和应用举例我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
- 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
- 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
- java实现我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
- 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠2*n的大矩形,总共有多少种方法?
- 用任意多个个2*1的小矩形,覆盖2*n的大矩形,请问有多少种覆盖的方法?
- 求点被多少个矩形覆盖
- Android SurfaceView 绘图覆盖刷新及脏矩形刷新方法
- UVA 11345 Rectangles(n个矩形重叠覆盖的面积)
- firefox中div重叠覆盖之前ul的两种解决方法
- Poj1151/HDU1542(求并矩形覆盖的面积)分别用离散化处理,矩形切割,线段树三种方法实现.