求解这个算斐波切纳兔子问题的算法哪里错了(和stl迭代器貌似有点关系)
#include
#include
#include
#defineBORN_AGE3
#defineDIE_AGE12
usingnamespacestd;
boolcanborn(intage);
boolshalldie(intage);
intmain()
{
intmonth=0,count=1;
do
{
cin>>month;
}
while(month<=0);
vectorrabbits;
rabbits.clear();
rabbits.push_back(1);
count=rabbits.size();
for(inti=1;i<=month;i++)
{
//handleborn
count=rabbits.size();
for(intii=0;ii
{
if(canborn(rabbits.at(ii)))
{
rabbits.push_back(1);
}
}
//handlegrow
count=rabbits.size();
for(intii=0;ii
//handledeath
count=rabbits.size();
for(intii=0;ii
{
if(shalldie(rabbits.at(ii)))
{
rabbits.at(ii)=*(rabbits.end());
rabbits.pop_back();
}
}
}
cout<
system("pause");
return0;
}
boolshalldie(intage)
{
if(age>=DIE_AGE)returntrue;
returnfalse;
}
boolcanborn(intage)
{
if(age>=BORN_AGE)returntrue;
returnfalse;
}
就是输入11时(兔子祖先的寿命将达到12个月,就是说它的死期到了)
然后就出问题了。。貌似是溢出(好吧相当于野指针)
算法
vector
------解决方案--------------------
*(rabbits.end())有问题,end迭代器不能解引用的。
java 实现斐波切纳数列 求解这个算斐波切纳兔子有关问题的算法错哪了(和stl迭代器貌似有点关系)...