求解这个算斐波切纳兔子问题的算法哪里错了(和stl迭代器貌似有点关系)
#include <iostream>
#include <stdlib.h>
#include <vector>
#define BORN_AGE 3
#define DIE_AGE 12
using namespace std;
bool canborn(int age);
bool shalldie(int age);
int main()
{
int month=0,count=1;
do
{
cin>>month;
}
while(month<=0);
vector <int> rabbits;
rabbits.clear();
rabbits.push_back(1);
count=rabbits.size();
for(int i=1;i<=month;i++)
{
//handle born
count=rabbits.size();
for(int ii=0;ii<count;ii++)
{
if(canborn(rabbits.at(ii)))
{
rabbits.push_back(1);
}
}
//handle grow
count=rabbits.size();
for(int ii=0;ii<count;ii++)rabbits.at(ii)++;
//handle death
count=rabbits.size();
for(int ii=0;ii<count;ii++)
{
if(shalldie(rabbits.at(ii)))
{
rabbits.at(ii)=*(rabbits.end());
rabbits.pop_back();
}
}
}
cout<<rabbits.size();
system("pause");
return 0;
}
bool shalldie(int age)
{
if(age>=DIE_AGE)return true;
return false;
}
bool canborn(int age)
{
if(age>=BORN_AGE)return true;
return false;
}