博客
关于我
2020秋数据结构实验第一题:兔子数列仿真(斐波那契数列仿真)C++实现
阅读量:312 次
发布时间:2019-03-03

本文共 4307 字,大约阅读时间需要 14 分钟。

兔子繁殖问题实验题目

题目一:经典兔子繁殖问题

编写一个程序,模拟兔子繁殖过程,计算第20个月和第15个月的兔子对数。初始时有一对成年兔子,每对兔子每月繁殖一对兔子,兔子不会死亡。

题目二:兔子繁殖次数限制

在经典问题的基础上,设定每对兔子繁殖两代后死亡,计算第20个月和第15个月的兔子对数。

题目三:繁殖间隔和死亡时间

设定兔子每K个月繁殖一次,每对兔子繁殖P代后死亡,计算第N个月的兔子对数。


问题分析

这三个题目看似复杂,但实际上可以通过简单的数据结构和逻辑实现。主要操作包括兔子出生和死亡的判断。可以使用向量存储兔子实例,通过循环模拟每月的繁殖和死亡过程。


源码实现

#include 
#include
#include
using namespace std;class rabbit {private: bool Is_Adult; bool Is_Death; int Grown_Time; int Breed_Time; int DEATH_TIME; int MATURE_TIME;public: rabbit(int Death_Time, int Mature_Time) { DEATH_TIME = Death_Time; MATURE_TIME = Mature_Time; Is_Adult = false; Is_Death = false; Grown_Time = 0; Breed_Time = 0; } bool Get_Is_Adult() { return Is_Adult; } bool Get_Is_Death() { return Is_Death; } int Get_Grown_Time() { return Grown_Time; } int Get_Breed_Time() { return Breed_Time; } void Add_Grown_Time() { Grown_Time++; if (Grown_Time >= MATURE_TIME) Is_Adult = true; } void Add_Breed_Time() { Breed_Time++; if (Breed_Time >= DEATH_TIME) Is_Death = true; }};int Compute_Num(int Month_Num, vector
Rabbits, int Death_Time, int Mature_Time) { for (int i = 0; i < Month_Num; i++) { int Rabbits_Size_Now = Rabbits.size(); int Dead_Rabbits = 0; int Born_Rabbits = 0; for (int j = 0; j < Rabbits_Size_Now;) { if (Rabbits[j].Get_Is_Death()) { Rabbits.erase(Rabbits.begin() + j); Rabbits_Size_Now--; Dead_Rabbits++; continue; } if (Rabbits[j].Get_Is_Adult()) { rabbit *r = new rabbit(Death_Time, Mature_Time); Rabbits.push_back(*r); Rabbits[j].Add_Breed_Time(); Born_Rabbits++; Rabbits_Size_Now++; if (Rabbits[j].Get_Is_Death()) { Rabbits.erase(Rabbits.begin() + j); Rabbits_Size_Now--; Dead_Rabbits++; continue; } } else Rabbits[j].Add_Grown_Time(); j++; } printf("The %2d month has %2d rabbits!\n", i+1, Rabbits.size()); if (Dead_Rabbits) printf("The %2d month has %2d rabbits dead!\n", i+1, Dead_Rabbits); if (Born_Rabbits) printf("The %2d month has %2d rabbits born!\n", i+1, Born_Rabbits); } return Rabbits.size();}int main() { int Death_Time, Mature_Time, Month_Num; char s[200] = "Example: Death_Time = 100000000, Mature_Time = 2, Month_Num = 12"; cout "/"; for (int i = 0; i < strlen(s); i++) cout "*"; cout "/"; cout << s << endl; cout << " "; while (1) { cout << "please input death_time: "; if (!(cin >> Death_Time)) { cout << "Wrong, you have inputed a wrong type data!" << endl; cin.clear(); while (cin.get() != '\n') continue; cout << "please input Death_Time again" << endl; cin >> Death_Time; } while (1) { cout << "Please input Mature_Time: "; if (!(cin >> Mature_Time)) { cout << "Wrong, you have inputed a wrong type data!" << endl; cin.clear(); while (cin.get() != '\n') continue; cout << "please input Mature_Time again" << endl; cin >> Mature_Time; } } while (1) { cout << "Please input Month_Num to Compute: "; if (!(cin >> Month_Num)) { cout << "Wrong, you have inputed a wrong type data!" << endl; cin.clear(); while (cin.get() != '\n') continue; cout << "please input Month_Num again" << endl; cin >> Month_Num; } } vector
Test; rabbit* a = new rabbit(Death_Time, Mature_Time); Test.push_back(*a); int rabbit_sum_num = Compute_Num(Month_Num, Test, Death_Time, Mature_Time); cout << rabbit_sum_num << endl; }}

代码说明

  • 类定义rabbit 类用于存储兔子的成年状态、死亡状态、成长时间和繁殖时间。
  • 计算函数Compute_Num 模拟每月的兔子繁殖和死亡过程,返回指定月份的兔子总数。
  • 主函数:通过用户输入获取参数,调用计算函数并输出结果。
  • 转载地址:http://rwrl.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现rsa 密钥生成器算法(附完整源码)
    查看>>
    Objective-C实现RSA密码算法(附完整源码)
    查看>>
    Objective-C实现RSA素因子算法(附完整源码)
    查看>>
    Objective-C实现runge kutta龙格-库塔法算法(附完整源码)
    查看>>
    Objective-C实现segment tree段树算法(附完整源码)
    查看>>
    Objective-C实现selection sort选择排序算法(附完整源码)
    查看>>
    Objective-C实现sha256算法(附完整源码)
    查看>>
    Objective-C实现shell sort希尔排序算法(附完整源码)
    查看>>
    Objective-C实现sieve of Eratosthenes埃拉托色尼筛法算法(附完整源码)
    查看>>
    Objective-C实现sieveOfEratosthenes埃拉托色尼筛法求素数算法 (附完整源码)
    查看>>
    Objective-C实现SinglyLinkedList单链表算法(附完整源码)
    查看>>
    Objective-C实现skew heap倾斜堆算法(附完整源码)
    查看>>
    Objective-C实现Skip List跳表算法(附完整源码)
    查看>>
    Objective-C实现slack message松弛消息算法(附完整源码)
    查看>>
    Objective-C实现slow sort慢排序算法(附完整源码)
    查看>>
    Objective-C实现tanh函数功能(附完整源码)
    查看>>
    Objective-C实现z-algorithm算法(附完整源码)
    查看>>
    Objective-C实现zellers congruence泽勒一致算法(附完整源码)
    查看>>
    Objective-C实现Zero One Knapsack零一背包计算算法(附完整源码)
    查看>>
    Objective-C实现一个Pangram字符串至少包含一次所有字母算法(附完整源码)
    查看>>