快速搭建网站前端,如何做网站接口,网站建设 建站知识,手机nfc网站开发网上关于这个问题有很多人说这个符合斐波那契数列#xff0c;但是我个人在推算的时候发现并不是这样的#xff0c;所以想自己解决这个问题 建立一个兔子类 属性有ID#xff0c;age public class rabbit{ public $id; public age; } 第1个月#xff1a;(id1,age1)-------… 网上关于这个问题有很多人说这个符合斐波那契数列但是我个人在推算的时候发现并不是这样的所以想自己解决这个问题 建立一个兔子类 属性有IDage public class rabbit{ public $id; public age; } 第1个月(id1,age1)------------------------------------------------------------------------------------------------------------------------------------------------------------------1 第2个月(id1,age2)------------------------------------------------------------------------------------------------------------------------------------------------------------------1 第3个月(id1,age3)------------------------------------------------------------------------------------------------------------------------------------------------------------------1 第4个月(id1,age4) (id2,age0)------------------------------------------------------------------------------------------------------------------------------------------------2 第5个月(id1,age5) (id2,age1) (id3,age0)-------------------------------------------------------------------------------------------------------------------------------3 第6个月(id1,age6) (id2,age2) (id3,age1) (id4,age0)--------------------------------------------------------------------------------------------------------------4 第7个月(id1,age7) (id2,age3) (id3,age2) (id4,age1) (id5,age0)---------------------------------------------------------------------------------------------5 第8个月(id1,age8) (id2,age4) (id3,age3) (id4,age2) (id5,age1) (id6,age0) (id7,age0)-----------------------------------------------------------7 第9个月(id1,age9) (id2,age5) (id3,age4) (id4,age3) (id5,age2) (id6,age1) (id7,age1)(id8,age0)(id9,age0)(id10,age0)--------10 第十个月(id1,age10) (id2,age6) (id3,age5) (id4,age4) (id5,age3) (id6,age2) (id7,age2)(id8,age1)(id9,age1)(id10,age1)(id11,age0)(id12,age0)(id13,age0)(id14,age0)---14 1:以数学的思想解决此问题 通过以上数列可以发现规律 an an-1an-4 这时可以用递归的思想来解决 //使用递归实现function get_rabbit_num($v){ if ($v1){ return 1; } if ($v2){ return 1; } if ($v3){ return 1; } if ($v4){ return 2; } else{ return get_rabbit_num($v-1)get_rabbit_num($v-4); }}echo get_rabbit_num(14);2、以编程的思想来解决此问题 class rabbit{ public $id; public $age; public $parent_id; public function __construct($id,$age,$parent_id) { $this-id$id; $this-age$age; $this-parent_id$parent_id; }}//月龄加1function addAge($v){ $v-age1;}//判断是否能生孩子第三个月的时候才怀上第四个月才生出来function isOk($v){ if ($v-age3){ return true; }else{ return false; }} $array_rabbit[];//兔子的集合 $rabbitnew rabbit(1,0,0);//第一对兔子 array_push($array_rabbit,$rabbit); for ( $i0;$i14;$i){ array_filter($array_rabbit,addAge);//每过一个月先让每对兔子的月龄1 $array_tmparray_filter($array_rabbit,isOk);//找出能生兔子的兔子 $ok_numcount($array_tmp); //能生兔子的兔子数 if (!$ok_num){ //如果都不能生直接开始下一轮循环 continue; } else{ $id_maxmax(array_column($array_rabbit,id));//最大的id值 foreach ($array_tmp as $item) { $id_max1;//新生出来的兔子的id $rabbit_newnew rabbit($id_max,0,$item-id);//新建一个兔子对象新生出来的兔子月龄都为0并指向是哪对兔子生的 array_push($array_rabbit,$rabbit_new);//将新生出来的兔子加入集合 } } }echo count($array_rabbit); 转载于:https://www.cnblogs.com/aibaofeng/p/9815502.html