题目描述: 1. 猎人把一对兔子婴儿(一公一母称为一对)放到一个荒岛上,两年之后,它们生下一对小兔,之后开始每年都会生下一对小兔。生下的小兔又会以同样的方式继续繁殖。  2. 兔子的寿命都是x(x>=3)年,并且生命的最后一年不繁殖。  3. 如果岛上的兔子多于10对,那么猎人会每年在兔子们完成繁殖或者仙逝之后,从岛上带走两对最老的兔子。  请问y年(y>=3)后荒岛上所有的兔子加起来多少岁?(注意, 在条件3执行完之后) 输入: 从命令行输入两行整数,第一行是x,第二行是y  输出: y年后荒岛上所有的兔子岁数的总和 输入:  x //兔子的寿命  y //若干年以后  输出:  n //所有兔子的年龄之和  思路: 结构体:兔子年龄和最大年龄 遍历Y年{ 每只年龄在2-(maxAge-1)之间的兔子都生只兔子(两只生两只,就是一只生一只); 年龄>=maxAge的兔子仙逝; 若岛上只数>20只,则带走年龄最大的4只兔子。 } 累加岛上兔子年龄。 */ #include<iostream>   #include <vector>   #include <algorithm>   using namespace std; struct Rab { int age; int maxAge; }; void AgeAdd(vector<Rab> &sum) { vector<Rab>::iterator it; for (it = sum.begin(); it != sum.end(); it++) { it->age++;//年龄加1 } } void Dead(vector<Rab> &sum) { vector<Rab>::iterator it; for (it = sum.begin(); it != sum.end();) { if (it->age >= it->maxAge)//达到最大年龄,仙逝 it = sum.erase(it); else it++; } } void Birth(vector<Rab> &sum, int x) { vector<Rab>Temp; vector<Rab>::iterator it; for (it = sum.begin(); it != sum.end(); it++) {//每一对兔子每年生一对兔子,相当于每一年每一只兔子生一只兔子 if (it->age >= 2 && it->age < it->maxAge)//年龄在两岁到最大岁减一之间可以生小兔 { Rab newborth = { 0, x }; Temp.push_back(newborth); } } for (vector <Rab>::iterator iter = Temp.begin(); iter != Temp.end(); iter++){ sum.push_back((*iter)); } //以下是上述for循环的简略写法,参考auto在容器中的用法 //for (auto x : Temp) // sum.push_back(x); } int main() { int x, y;//寿命和年数 cin >> x >> y; //Rab R1 = { 0, x };//公 Rab R2 = { 0, x };//母 vector<Rab> sum; sum.push_back(R1); //sum.push_back(R2); for (int i = 0; i < y; i++) {//遍历年数,一共y年 AgeAdd(sum);//年龄增长 Dead(sum);//兔子仙逝 Birth(sum, x);//兔子出生 if (sum.size() > 20) {//兔子数多于十对,带走两对最老的 sum.erase(sum.begin()); sum.erase(sum.begin()); sum.erase(sum.begin()); sum.erase(sum.begin()); } } int num = 0; for (vector <Rab>::iterator iter = sum.begin(); iter != sum.end(); iter++){ num = num + (*iter).age; } //以下是上述for循环的简略写法,参考auto在容器中的用法 //for (auto x : sum) //num = num + x.age; cout << num << endl; }
点赞 6

相关推荐

02-13 15:16
三江学院 运营
据说名字越长别人越关注你的昵称我觉得我要被关注了:完全看不出你到底干了什么 全是车轱辘话
点赞 评论 收藏
分享
一天代码十万三:实习东西太少了,而且体现不出你业务,3个月不可能就这点产出吧,建议实习多写点,玩具项目面试官都不感兴趣的
点赞 评论 收藏
分享
牛客网
牛客企业服务