有一个很有名的数学逻辑题叫做不死神兔问题,有一对兔子,从出生后第三个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问输入n个月后有几对兔子,用C++简单方法实现
时间: 2023-10-16 08:12:21 浏览: 94
c代码-有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?(输出前40个月即可)
这是一个经典的斐波那契数列问题,可以使用递归或循环实现。
递归解法如下:
```c++
#include <iostream>
using namespace std;
int fibonacci(int n) {
if (n == 1 || n == 2) {
return 1;
} else {
return fibonacci(n-1) + fibonacci(n-2);
}
}
int main() {
int n;
cout << "请输入月份n:";
cin >> n;
cout << "第" << n << "个月共有" << fibonacci(n) << "对兔子。" << endl;
return 0;
}
```
循环解法如下:
```c++
#include <iostream>
using namespace std;
int fibonacci(int n) {
if (n == 1 || n == 2) {
return 1;
}
int a = 1, b = 1, c;
for (int i = 3; i <= n; i++) {
c = a + b;
a = b;
b = c;
}
return b;
}
int main() {
int n;
cout << "请输入月份n:";
cin >> n;
cout << "第" << n << "个月共有" << fibonacci(n) << "对兔子。" << endl;
return 0;
}
```
阅读全文