关注
/*
猎人把一对兔子婴儿(一公一母称为一对)放到一个荒岛上,两年之后,它们生下一对小兔,
之后开始每年都会生下一对小兔。生下的小兔又会以同样的方式继续繁殖。 兔子的寿命都是
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;
}
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 2025年终总结 #
145368次浏览 2495人参与
# 秋招落幕,你是He or Be #
2852次浏览 72人参与
# 应届生进小公司有什么影响吗 #
108950次浏览 1115人参与
# 比亚迪工作体验 #
69869次浏览 254人参与
# 你面试体验感最差/最好的公司 #
2718次浏览 55人参与
# 工作中听到最受打击的一句话 #
2328次浏览 61人参与
# 大厂VS公务员你怎么选 #
70763次浏览 657人参与
# 重来一次,你会对开始求职的自己说 #
2724次浏览 69人参与
# 一人说一个提前实习的好处 #
3070次浏览 64人参与
# 团建是“福利”还是是 “渡劫” #
3859次浏览 108人参与
# 实习没事做是福还是祸? #
7927次浏览 135人参与
# 如何排解工作中的焦虑 #
243394次浏览 2237人参与
# 从顶到拉给所有面过的公司评分 #
144759次浏览 518人参与
# 今年你最想重开的一场面试是? #
1299次浏览 24人参与
# 你小心翼翼的闯过多大的祸? #
6660次浏览 107人参与
# 联影求职进展汇总 #
123765次浏览 781人参与
# OPPO求职进展汇总 #
755810次浏览 5390人参与
# 互联网公司爆料 #
158527次浏览 724人参与
# 产品实习,你更倾向大公司or小公司 #
189033次浏览 2052人参与
# 秋招结束之后的日子 #
113877次浏览 1038人参与

