获赞
607
粉丝
17
关注
3
看过 TA
103
北京工业大学
2018
C++
IP属地:未知
不要说话,去潜水!
私信
关注
2017-10-14 10:54
已编辑
京东集团_软件开发工程师
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
阿里测试-荒岛兔子 1. 猎人把一对兔子婴儿(一公一母称为一对)放到一个荒岛上,两年之后,它们生下一对小兔,    之后开始每年都会生下一对小兔。生下的小兔又会以同样的方式继续繁殖。 2. 兔子的寿命都是x(x>=3)年,并且生命的最后一年不繁殖。 3. 如果岛上的兔子多于10对,那么猎人会每年在兔子们完成繁殖或者仙逝之后,从岛上带走两对最老的兔子。 请问y年(y>=3)后荒岛上所有的兔子加起来多少岁?(注意, 在条件3执行完之后)   输入: 从命令行输入两行整数,第一行是x,第二行是y 输出: y年后荒岛上所有的兔子岁数的总和 ...
wshxj123:#include <iostream> #include <vector> using namespace std; int main() { int x, y; while(cin >> x >> y) { vector<int> old; //存储每对的年龄 int pairs = 0; int result = 0; for(int i = 1; i <= y; i++) { if(pairs == 0) //第一年就一对,到年末一岁 { pairs++; old.push_back(1); } else { for(int j = 0; j < pairs; j++) { old[j]++; if(old[j] >= 2 && old[j] < x) //从2岁之后就生兔子了(但是最后一年不生),所以压入0 old.push_back(0); } while(!old.empty() && old[0] >= x) //看看前面的死没死,死了就去掉 old.erase(old.begin()); if(old.size() > 10) { //大于10就让猎人带走两对 old.erase(old.begin()); old.erase(old.begin()); } pairs = old.size(); } } for(int i = 0; i < pairs; i++) result += 2 * old[i]; cout <<result <<endl; } return 0; } 这是我做的,能过100%
投递阿里巴巴等公司10个岗位 >
0 点赞 评论 收藏
分享
关注他的用户也关注了:
牛客网
牛客企业服务