用数组求兔子繁殖问题c++
时间: 2023-09-03 21:04:26 浏览: 115
兔子繁殖问题C是指在每对兔子在一个月后成熟,每对成熟兔子每个月可以繁殖一对新兔子,假设一开始只有一对刚出生的兔子,请问n个月后有多少对兔子?
我们可以用数组来解决这个问题。首先定义一个大小为n+2的数组rabbit_arr来存储每个月的兔子对数,初始值为[0, 1, 0, ..., 0],其中第一个元素表示第0个月有0对兔子,第二个元素表示第一个月有一对兔子,其余元素初始化为0。
然后,我们使用一个循环从第三个元素开始到第n+1个元素,分别计算每个月的兔子对数。具体计算方法如下:
rabbit_arr[i] = rabbit_arr[i-1] + rabbit_arr[i-2]
其中,rabbit_arr[i]表示第i个月兔子对数,rabbit_arr[i-1]表示上个月的兔子对数,rabbit_arr[i-2]表示上上个月的兔子对数。
最后,我们返回数组rabbit_arr的最后一个元素即可得到n个月后兔子的对数。
例如,当n=6时,计算过程如下:
初始:[0, 1, 0, 0, 0, 0, 0]
第三个月:[0, 1, 1, 0, 0, 0, 0]
第四个月:[0, 1, 1, 2, 0, 0, 0]
第五个月:[0, 1, 1, 2, 3, 0, 0]
第六个月:[0, 1, 1, 2, 3, 5, 0]
第七个月:[0, 1, 1, 2, 3, 5, 8]
返回8,即第七个月有8对兔子。
通过上述方法,可以用数组求解兔子繁殖问题C。
相关问题
2.用数组的方法,求Fibonacci数列的前20项。 斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)
好的,下面是使用数组来计算斐波那契数列前20项的 C++ 代码示例:
```cpp
#include <iostream>
using namespace std;
int main() {
int fib[20];
fib[0] = 1;
fib[1] = 1;
for (int i = 2; i < 20; i++) {
fib[i] = fib[i-1] + fib[i-2];
}
for (int i = 0; i < 20; i++) {
cout << fib[i] << " ";
}
cout << endl;
return 0;
}
```
输出结果为:
```
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765
```
在这个代码中,我们首先创建了一个数组 `fib`,用来存储斐波那契数列的前20项。然后,我们设置了前两项 `fib[0]` 和 `fib[1]` 的值为1,接着使用循环计算了剩余的项,并将它们存储在数组中。最后,我们再次使用循环输出了整个数组。
阅读全文