4.12趣味百题第五题
一 问题描述
一队兔子,出生后第三个月每个月都生一对兔子。小兔子长到第三个月后每个月又生一对兔子,假设所有的兔子都不死,问30个月内每个月的兔子总数为多少?
二 设计思路
1. 每个兔子分为成长期和繁殖期。
2.成长期的兔子成长两个月便会进入繁殖期。
3.繁殖期的兔子每个月都会繁殖一个新兔子。
4.不用考虑兔子死亡使问题变得简单,扩展问题可以加上平均死亡月份。
三 流程图

四 伪代码
把兔子分为三种 a,b,c
总数n=a+b+c
for(int i=1;i<30;i++)
{ 输出总数
c+=b
b=a
a=c
d=a+b+c
五 c语言代码
#include<iostream>
using namespace std;
int main()
{
class tuzi{
public:
int a=1;//处于第一个月的兔子对数
int b=0;//处于第二个月的兔子对数
int c=0;//处于繁殖期的兔子对数
int d=1;//兔子总对数
};
tuzi n;//创建对象n
for(int i=1;i<=30;i++)
{
cout<<n.d<<endl;
n.c+=n.b;
n.b=n.a;
n.a=n.c;
n.d=n.a+n.b+n.c;
}
return 0;
}
浙公网安备 33010602011771号