关注
/*
阿里巴巴2018年秋季招聘研发工程师编程测试题
1. 猎人把一对兔子婴儿(一公一母称为一对)放到一个荒岛上,两年之后,它们生下一对小兔,之后开始每年都会生下一对小兔。生下的小兔又会以同样的方式继续繁殖。
2. 兔子的寿命都是x(x>=3)年,并且生命的最后一年不繁殖。
3. 如果岛上的兔子多于10对,那么猎人会每年在兔子们完成繁殖或者仙逝之后,从岛上带走两对最老的兔子。
请问y年(y>=3)后荒岛上所有的兔子加起来多少岁?(注意, 在条件3执行完之后)
输入: 从命令行输入两行整数,第一行是x,第二行是y
输出: y年后荒岛上所有的兔子岁数的总和
*/
#include <iostream>
#include <algorithm>
#include <string>
#include<cmath>
#include<vector>
#include<map>
#include<cctype>
#include<queue>
#include<stack>
using namespace std;
void jian1(vector<int> &v, int x)
{
int new_count = 0;
int dead_count = 0;
for (int i = 0; i < v.size(); i++)
{
v[i]--;
if (v[i] == 0)
{
dead_count++;
continue;
}
if (x - v[i] >= 2)
{
new_count++;
}
}
v.assign(v.begin() + dead_count, v.end());
for (int i = 0; i < new_count; i++)
{
v.push_back(x);
}
if (v.size() > 10)
{
v.assign(v.begin() + 2, v.end());
}
}
int main()
{
//freopen("input.txt", "r", stdin);
int x, y;
while (cin >> x >> y)
{
vector<int> v;
v.push_back(x);
for (int i = 1; i <= y; i++)
jian1(v, x);
int result = 0;
for (int i = 0; i < v.size(); i++)
{
//cout <<x- v[i] << ' ';
result += (x - v[i]);
}
//cout << endl;
cout << result * 2 << endl;
}
}
查看原帖
点赞 评论
相关推荐

点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 大厂面试初体验 #
5357次浏览 42人参与
# 如果可以,你希望哪个公司来捞你 #
100870次浏览 457人参与
# 如何提高实习转正率? #
2277次浏览 30人参与
# leader认为你工作不认真怎么办 #
30872次浏览 140人参与
# 你遇到过哪些神仙同事 #
100332次浏览 724人参与
# 我的国央企投递进展 #
46665次浏览 292人参与
# 国企是理工四大天坑的最好选择吗 #
13702次浏览 95人参与
# 五一之后,实习真的很难找吗? #
78521次浏览 515人参与
# 机械人,你被简历秒挂的企业有哪些? #
43010次浏览 281人参与
# 招聘要求与实际实习内容不符怎么办 #
113005次浏览 770人参与
# 如果公司给你放一天假,你会怎么度过? #
17107次浏览 128人参与
# 找工作时的取与舍 #
80466次浏览 568人参与
# 投递几十家公司,到现在0offer,大家都一样吗 #
246317次浏览 1792人参与
# 三一重工求职进展汇总 #
15068次浏览 67人参与
# OPPO求职进展汇总 #
662889次浏览 5041人参与
# 你的秋招第一场笔试是哪家 #
142780次浏览 1453人参与
# 总结:哪家公司面试体验感最差 #
61093次浏览 276人参与
# 如果重来一次你还会读研吗 #
176922次浏览 1786人参与
# 机械人,说说你的烦心事 #
69713次浏览 839人参与
# 面试时被问的最奇葩的问题 #
22995次浏览 130人参与