关注
/*
猎人把一对兔子婴儿(一公一母称为一对)放到一个荒岛上,两年之后,它们生下一对小兔,
之后开始每年都会生下一对小兔。生下的小兔又会以同样的方式继续繁殖。 兔子的寿命都是
x(x >= 3)年,并且生命的最后一年不繁殖。 如果岛上的兔子多于10对,那么猎人会每年在
兔子们完成繁殖或者仙逝之后,从岛上带走两对最老的兔子。请问y年(y >= 3)后荒岛上所有
的兔子加起来多少岁 ? 输入 : 从命令行输入两行整数,第一行是x,第二行是y输出 : y年
后荒岛上所有的兔子岁数的总和
*/
//看题主题目做得,具体对不对不知道
#include <iostream>
#include <vector>
using namespace std;
void getresult(int x, int y){
vector<int> v;
v.push_back(0);
//v.push_back(0);
int num = 1;
int age = 0;
while (y--){
for (int i = 0; i < v.size(); i++){
if (v[i] >= 0) v[i]++;//活着的和寿命已满的加一岁。
}
int len = v.size();
for (int i = 0; i < len; i++){
if (v[i] == x){
v[i] = -2;
num--; //-2代表这一年没有生育能力
}
//else if (v[i] == x - 1);
else if (v[i] >= 2){ //大于等于两岁的生一对,存在数组中
v.push_back(0);
num++;
}
}
//如果兔子数量超过10只带走最老的或者死掉的最老的。
if (num > 10){
num--;
int j = 0;
while (v[j] == -2) j++;//-4代表被带走的。
v[j] = -2;
}
}
for (int i = 0; i < v.size(); i++){
if (v[i] > 0){
age += v[i];//活着的岁数相加
}
}
cout << 2*age << endl;//一对是两只,所以乘以2
}
int main1(){
int x;
int y;
cin >> x;
cin >> y;
getresult(x, y);
return 0;
}
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
重剑Ds:哎 怎么可能人人都这么厉害qvq... 只是不厉害的人不咋发声罢 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 在大厂上班是一种什么样的体验 #
13229次浏览 176人参与
# 机械人避雷的岗位/公司 #
44497次浏览 314人参与
# 程序员找工作至少要刷多少题? #
22114次浏览 282人参与
# 工作前VS工作后,你的心态变化 #
38281次浏览 266人参与
# 论秋招对个人心气的改变 #
14397次浏览 197人参与
# 为了减少AI幻觉,你注入过哪些设定? #
6686次浏览 190人参与
# 牛客AI体验站 #
8476次浏览 217人参与
# 你的mentor是什么样的人? #
51336次浏览 724人参与
# 你现在会用到哪些AI技能? #
24717次浏览 137人参与
# 找实习多的是你不知道的事 #
1788617次浏览 20670人参与
# 我现在比当时_,你想录用我吗 #
9769次浏览 133人参与
# 12306一秒售罄,你抢到回家的票了吗? #
2433次浏览 52人参与
# 应届生进小公司有什么影响吗 #
118614次浏览 1161人参与
# 一张图晒一下你的AI员工 #
6036次浏览 131人参与
# 哪一瞬间让你觉得工作好累 #
75646次浏览 431人参与
# AI Coding的使用心得 #
5664次浏览 117人参与
# 父母对你找工作是助力还是阻力? #
38369次浏览 387人参与
# 刚入职的你踩过哪些坑 #
7939次浏览 140人参与
# 我和mentor的爱恨情仇 #
106450次浏览 951人参与
# 25年找工作是什么难度? #
53651次浏览 338人参与