斐波那契数列c++兔子
时间: 2024-11-06 19:19:42 浏览: 4
斐波那契数列是一种经典的数学序列,它的特点是每个数字都是前两个数字之和。通常用兔子繁殖来比喻这个概念:假设有一对刚出生的小兔子,一个月后这对小兔子就能生出一对新的小兔子,而这一对新生的小兔子一个月后又能各生一对,如此循环。在C++中,我们可以用递归或动态规划的方式来生成斐波那契数列。
以下是使用递归的方式编写一个简单的斐波那契数列程序:
```cpp
#include <iostream>
int fibonacci(int n) {
if (n <= 0) {
return 0;
}
else if (n == 1) {
return 1;
}
else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
int main() {
int rabbits;
std::cout << "请输入兔子代数: ";
std::cin >> rabbits;
for (int i = 0; i <= rabbits; ++i) {
std::cout << "第" << i+1 << "代兔子有 " << fibonacci(i) << " 只.\n";
}
return 0;
}
```
在这个例子中,`fibonacci()`函数计算第n代兔子的数量,通过递归地调用自身来模拟兔子繁殖过程。
相关问题
c++斐波那契数列又称兔子数列。数列的第一项和第二项都是 11 , 从第三项开始为前面两项的和。请求出斐波那契数列的第 ii 项 (1 < i < 1001<i<100)
好的,C++中也可以使用递归或迭代两种方式来实现斐波那契数列。这里我同样使用迭代的方式来计算第 i 项。
以下是 C++ 代码实现:
```c++
#include <iostream>
using namespace std;
long long fibonacci(int n) {
if (n <= 0) {
return -1;
} else if (n == 1 || n == 2) {
return 1;
} else {
long long a = 1, b = 1, c = 0;
for (int i = 3; i <= n; i++) {
c = a + b;
a = b;
b = c;
}
return c;
}
}
int main() {
// 计算第 100 项
cout << fibonacci(100) << endl;
return 0;
}
```
输出结果为:
```
573147844013817084101
```
所以斐波那契数列的第 100 项为 573147844013817084101。需要注意的是,使用 long long 类型来存储斐波那契数列的项,以避免数据溢出的问题。
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,接着使用循环计算了剩余的项,并将它们存储在数组中。最后,我们再次使用循环输出了整个数组。
阅读全文