问题是这样的:一对小兔子一年后长成大兔子;一对大兔子每半年生一对小兔子。大兔子的繁殖期为4年,兔子的寿命是6年。假定第一年年初投放了一对小兔子,试编程计算第n年末总共会有多少对兔子(不考虑非自然死亡)。n由键盘输入。
我的思路是这样的:这年的兔子数=上年的兔子数+上年上半年出生的兔子数+上年下半年出生的兔子数-今年死亡的兔子数
其中:上年上半年出生的兔子数=一年前的兔子数(刚好开始生育)-五年前的兔子数(无法生育)=func(n-1)-func(n-5)
上年下半年出生的兔子数=一年半前的兔子数(刚好开始生育)-五年半前的兔子数(无法生育)
=func(n-1.5)-func(n-5.5)
代码如下
#include <iostream>
using namespace std;
int func(double n){
int a;
if(n<1)a=0;
else if(n>=1&&n<2)a=1;
else a=func(n-1)+func(n-1)+func(n-1.5)-func(n-5)-func(n-5.5)-func(n-6);
return a;
}
int main() {
double n;
cin>>n;
cout<<func(n);
}
我也不确定写的对不对,请大家帮我看一下