var month=parseInt(5); // 当前月份兔子数的数组 var arr=[1,0,0,0]; // 当前月份 var now=1; // 新生的兔子 var child=0 while(true){ now++; // 过了一个月,兔子月份或者数量变化 for(var i=3;i>=0;i--){ // 足月的兔子 再生兔子 if(i==3){ child=arr[3] }else{ // 不足月的兔子月份增加 if(i==2){ arr[i+1]+=arr[i]; }else{ arr[i+1]=arr[i]; } arr[i]=0; if(i==0){ arr[0]=child; } } } console.log(arr) // 月份足了则返回数组和 if(month==now){ console.log(arr.reduce((a,b)=>{ return a+b; })); break; } }