关注
/*
阿里巴巴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;
}
}
查看原帖
点赞 评论
相关推荐
牛客热帖
正在热议
# 拼多多求职进展汇总 #
228951次浏览 2025人参与
# ai智能作图 #
17597次浏览 231人参与
# 北方华创开奖 #
65416次浏览 544人参与
# 25届秋招总结 #
388952次浏览 3876人参与
# 硬件兄弟们 甩出你的华为奖状 #
77368次浏览 623人参与
# 地方国企笔面经互助 #
6347次浏览 15人参与
# 阿里云管培生offer #
56475次浏览 1725人参与
# 实习,投递多份简历没人回复怎么办 #
2432690次浏览 34685人参与
# 哪些公司校招卡第一学历 #
32090次浏览 98人参与
# 在职场上,你最讨厌什么样的同事 #
5424次浏览 77人参与
# 实习与准备秋招该如何平衡 #
721458次浏览 8538人参与
# 我的实习求职记录 #
6114026次浏览 83905人参与
# 工作中,你有没有遇到非常爱骂人的领导? #
4547次浏览 46人参与
# 如果再来一次,你还会选择这个工作吗? #
106949次浏览 1076人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
9494次浏览 197人参与
# 实习想申请秋招offer,能不能argue薪资 #
35536次浏览 308人参与
# 牛客租房专区 #
4303次浏览 119人参与
# 腾讯求职进展汇总 #
206737次浏览 1693人参与
# 如果有时光机,你最想去到哪个年纪? #
27337次浏览 567人参与
# 中兴求职进展汇总 #
467458次浏览 2436人参与
# 华为工作体验 #
109815次浏览 853人参与
# 还记得你第一次面试吗? #
31023次浏览 438人参与