关注
/*
阿里巴巴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;
}
}
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 2025年终总结 #
146876次浏览 2514人参与
# 秋招落幕,你是He or Be #
3090次浏览 76人参与
# 应届生进小公司有什么影响吗 #
109034次浏览 1116人参与
# 比亚迪工作体验 #
70056次浏览 254人参与
# 你面试体验感最差/最好的公司 #
2926次浏览 56人参与
# 工作中听到最受打击的一句话 #
2449次浏览 61人参与
# 大厂VS公务员你怎么选 #
71038次浏览 660人参与
# 重来一次,你会对开始求职的自己说 #
2891次浏览 71人参与
# 一人说一个提前实习的好处 #
3247次浏览 69人参与
# 团建是“福利”还是是 “渡劫” #
3951次浏览 110人参与
# 实习没事做是福还是祸? #
8127次浏览 135人参与
# 如何排解工作中的焦虑 #
243669次浏览 2241人参与
# 从顶到拉给所有面过的公司评分 #
144781次浏览 518人参与
# 今年你最想重开的一场面试是? #
1359次浏览 24人参与
# 你小心翼翼的闯过多大的祸? #
6834次浏览 109人参与
# 联影求职进展汇总 #
123814次浏览 781人参与
# OPPO求职进展汇总 #
755868次浏览 5390人参与
# 互联网公司爆料 #
158557次浏览 724人参与
# 产品实习,你更倾向大公司or小公司 #
189078次浏览 2053人参与
# 秋招结束之后的日子 #
113892次浏览 1038人参与