64,654
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
using namespace std;
class Bacteria
{
private:
//a,b,c,d依次代表产生时间为1,2,3,4+分钟的细菌
int a,b,c,d;
public:
//经过time分钟时间后a,b,c,d的改变
void Change(int time)
{
a = 1;
b = c = d = 0;
for (int i = 0; i < time; i++)
{
int temp = d;
d = d + c;
c = b;
b = a;
a = temp;
}
}
//获得细菌数
int GetNum(){return (a + b + c + d);}
//测试20分钟内细菌数的变化
void main()
{
for (int i=0; i < 20; i++)
{
Change(i);
cout << "time: " << i << "min num: "
<< GetNum() << endl;
}
}
};
int main()
{
Bacteria bac;
bac.main();
return 0;
}
#include <iostream>
using namespace std;
int GetGermNum(int n){
if(n<=4)
return 0;
int temp=n-4;
int num=0;
while(temp>0){
temp--;//时间消逝一分钟
num++;//产生一个细菌
num+=GetGermNum(temp); //这个细菌在余生里,继续产生细菌
}
return num;
}
int _tmain(int argc, _TCHAR* argv[])
{
cout<<GetGermNum(20)<<endl;
return 0;
}