php實現矩形覆蓋
一、總結
很簡單的斐波那契數列
二、php實現矩形覆蓋
題目描述:
我們可以用2*1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個2*1的小矩形無重疊地覆蓋一個2*n的大矩形,總共有多少種方法?
程式碼:
1 <?php 2 3 //解題思路:f(n)=f(n-1)+f(n-2) 4 $arr = array('1','1','2'); //1、陣列初始化賦值的問題要注意 5 function tianchong($number){ 6 if($number<=0) return 0; //2、如果是0返回0,如果是f(0)應該返回1 7 if($arr[$number]!=-1) return $arr[$number]; 8 else{ 9 //$arr[$number-1]=tianchong($number-1); //3、這兩行沒有必要,因為遞迴的時候回執行這個操作 10 //$arr[$number-2]=tianchong($number-2); 11 return $arr[$number]=tianchong($number-1)+tianchong($number-2); 12 } 13 } 14 function rectCover($number) 15 { 16 global $arr; 17 for($i=3;$i<=$number+1;$i++){ 18 $arr[$i]=-1; 19 } 20 return tianchong($number); 21 }