在农场中,奶牛家族是一个非常庞大的家族,对于家族中的母牛,从它出生那年算起,第三年便能成熟,成熟的母牛每年可以生出一只小母牛。即母牛从出生开始的第三年便 能做妈妈。最开始农场只有一只母牛,它从第二年开始生小母牛。请设计一个高效    算法,返回第n年的母牛总数,已知n的范围为int范围内的正整数。


int getNum(int n)
{
hash_map<int,int> newCows;
pair<int,int> p(0,0);
newCows.insert(p);
hash_map<int,int> matureCows;
for(int i=0;i<n;i++)
{
//遍历所有的新牛,将第二个元素加1,如果等于2,则在新牛中删除,添加到成熟的牛中
hash_map<int,int>::iterator itr=newCows.begin();
for(;itr!=newCows.end();itr++)
{
itr->second++;
if(itr->second==2)
{
newCows.erase(itr);
p.first=matureCows.size();
matureCows.insert(p);
}
}
for(itr=matureCows.begin();itr!=matureCows.end();itr++)
{
p.first=newCows.size();
p.second=0;
newCows.insert(p);
}
}
return newCows.size()+matureCows.size();
}