关注
/*
阿里巴巴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;
}
}
查看原帖
点赞 评论
相关推荐
牛客热帖
更多
正在热议
更多
# 牛客新年AI问运 #
2276次浏览 46人参与
# 刚工作,应该先搞钱or搞成长? #
20704次浏览 159人参与
# 牛客AI体验站 #
15447次浏览 275人参与
# 你觉得第一学历对求职有影响吗? #
229794次浏览 1266人参与
# 找工作中的小确幸 #
80282次浏览 448人参与
# 你觉得技术面多长时间合理? #
167980次浏览 1170人参与
# 实习在多还是在精 #
82638次浏览 509人参与
# 月薪多少能在一线城市生存 #
136259次浏览 898人参与
# 牛友的春节生活 #
10741次浏览 206人参与
# 备战春招/暑实,现在应该做什么? #
7357次浏览 199人参与
# 从夯到拉,锐评职场mentor #
7173次浏览 108人参与
# 实习到现在,你最困惑的一个问题 #
6402次浏览 163人参与
# 春招什么时候投? #
12801次浏览 207人参与
# 制造业的秋招小结 #
143295次浏览 2089人参与
# 电网笔面经互助 #
59632次浏览 476人参与
# 秋招踩过的“雷”,希望你别再踩 #
185600次浏览 1683人参与
# 春节提前走,你用什么理由请假? #
13020次浏览 287人参与
# 距离春招还有一个月,你现在是什么开局? #
8947次浏览 132人参与
# 今年秋招你收到了多少封邮件? #
38220次浏览 280人参与
# 暑期实习什么时候投? #
9153次浏览 196人参与