这是一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第3个月后每个月又生一对兔子,假设所有兔子都不死,问每个月的兔子总数为多少?
根据给出的每月兔子总数的关系,可编写程序如下:
#include <iostream>
#include <iomanip>using namespace std;
int main( )
{
long f1,f2;
int i;
f1=f2=1;
for(i=1;i<=20;i++)//int型总数实际算到20个月已经8位了,再大可能要溢出了,int型一共9位保险起见还是用8位
{
cout<<setw(12)<<f1<<setw(12)<<f2;
//设备输出字段宽度为12,每次输出两个数
if(i%2==0) cout<<endl;
//每输出完4个数后换行,使每行输出4个数
f1=f1+f2;
//左边的f1代表第3个数,是第1?2个数之和
f2=f2+f1;
//左边的f2代表第4个数,是第2?3个数之和
}
return 0;
}