首页 > 分享 > 兔子繁殖模型与算法解析

兔子繁殖模型与算法解析

【算法题】兔子

最新推荐文章于 2021-03-21 19:58:03 发布

原创 于 2017-08-17 15:30:25 发布 · 1k 阅读

· 0

· 0 ·

CC 4.0 BY-SA版权

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

问题
1. 猎人把一对兔子婴儿(一公一母称为一对)放到一个荒岛上,两年之后,它们生下一对小兔,之后开始每年都会生下一对小兔。生下的小兔又会以同样的方式继续繁殖。
2. 兔子的寿命都是x(x>=3)年,并且生命的最后一年不繁殖。
3. 如果岛上的兔子多于10对,那么猎人会每年在兔子们完成繁殖或者仙逝之后,从岛上带走两对最老的兔子。
请问y年(y>=3)后荒岛上所有的兔子加起来多少岁?(注意, 在条件3执行完之后)

输入: 从命令行输入两行整数,第一行是x,第二行是y
输出: y年后荒岛上所有的兔子岁数的总和

输入:
x //兔子的寿命

y //若干年以后
输出:
n //所有兔子的年龄之和

题目不难,题意太难

年龄从0开始,到x的时候死亡
刚生下来为年龄为0,年龄x的时候死亡且不生下一代,2至x-1年龄的兔子都会生下一代。

#include <iostream> #include <vector> #include <algorithm> #include <windows.h> #include <numeric> using namespace std; #define debug_ int x, y; long long func() { vector<long long> vec(x,0);//vec[i]:年龄i的兔子对数 vec[0] = 1; long long child(0); bool flag(false); for (auto i = 0; i < y; ++i) { flag = false; if (accumulate(vec.begin(),vec.end(),0)>10) flag = true; for (auto j = x-2; j >= 0;--j) { vec[j+1] = vec[j]; } child = accumulate(vec.begin() + 2, vec.end(), 0); vec[0] = child; if (flag) { int count(0); for (auto j = x-1; j >= 0;--j) { while (vec[j]>0) { --vec[j]; count++; if (count == 2) break; } if (count == 2) break; } } } long long sum_age(0); for (auto i = 0; i < vec.size(); ++i) { sum_age += vec[i] * i * 2; } return sum_age; } int main() { #ifdef debug_ x = 4; y = 6; #else cin>>x; cin >> y; #endif cout<<func(); return 0; }

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

相关知识

兔子繁殖模型与算法解析
数据挖掘算法中,预测类模型详解
宠物配种匹配算法研究与应用
兔子繁殖 (30 分) 兔子繁殖问题。
JavaScript兔子繁殖问题详解
深入解析Yolov7模型训练结果及评估
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
宠物配种匹配算法的优化
华为云ModelArts YOLOv4模型训练与部署教程
宠物大模型健康公司「绮算法」获千万元级战略投资,Z基金投资 投资界2月6日消息,据36氪报道,宠物大模型健康公司重庆绮算法科技有限公司(以下简称“绮算法”)近日 获得千万元级战略投...

网址: 兔子繁殖模型与算法解析 https://m.mcbbbk.com/newsview1329237.html

所属分类:萌宠日常
上一篇: 宠物兔出逃2年繁衍4代 小区居民
下一篇: 蛇、蜥蜴等冷血宠物能高铁托运吗?