有一对兔子,从出生后第 3 3 个月起每个月都生一对兔子,一对小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死。 问第 n 个月( n≤50 )的兔子总数为多少对?请用c++编写程序
时间: 2023-10-16 20:26:01 浏览: 79
c代码-有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?(输出前40个月即可)
5星 · 资源好评率100%
以下是 C++ 代码实现:
```cpp
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int f1 = 1, f2 = 1; // 前两个月兔子对数
for (int i = 3; i <= n; i++) {
int f3 = f1 + f2; // 当月兔子对数
f1 = f2;
f2 = f3;
}
cout << f2 << endl;
return 0;
}
```
思路:
根据题意,第 1 个月和第 2 个月的兔子对数都是 1。从第 3 个月开始,每个月的兔子对数都是前两个月的兔子对数之和。
用变量 f1 和 f2 分别表示当前月份的前两个月的兔子对数,f3 表示当月兔子对数。每个月结束后,将 f2 赋值给 f1,将 f3 赋值给 f2,循环计算直到第 n 个月结束。最终输出 f2 即可。
阅读全文