c++计算fibonacci数列的前20项。
时间: 2023-11-18 11:00:58 浏览: 92
Fibonacci数列是一个非常经典的数学问题,它定义如下:数列的第一和第二个数字都是1,从第三个数字开始,每个数字都是前两个数字的和。
为了计算Fibonacci数列的前20项,我们可以使用循环的方法来逐个计算每个数字。首先,我们初始化前两个数字为1和1,然后使用一个循环来计算第三个数字到第20个数字。在循环的每一次迭代中,我们将前两个数字相加得到第三个数字,并且在每次迭代中更新前两个数字的值。最后,我们将得到的前20项依次输出,即为所求。
下面是用Python语言的示例代码:
```python
# 初始化前两个数字
a, b = 1, 1
print(a) # 输出第一个数字1
print(b) # 输出第二个数字1
# 循环计算第3个数字到第20个数字
for _ in range(18):
c = a + b
print(c) # 输出第三个数字到第20个数字
a, b = b, c # 更新前两个数字的值
```
通过上面的代码,我们就可以得到Fibonacci数列的前20项:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765。
相关问题
c++计算斐波那契数列第n项的值。
可以使用递归或循环两种方法计算斐波那契数列第n项的值。
递归方法:
```c++
#include <iostream>
using namespace std;
int fib(int n)
{
if(n == 0 || n == 1)
return n;
else
return fib(n-1) + fib(n-2);
}
int main()
{
int n;
cout << "请输入n的值: ";
cin >> n;
cout << "斐波那契数列第" << n << "项的值为: " << fib(n) << endl;
return 0;
}
```
循环方法:
```c++
#include <iostream>
using namespace std;
int fib(int n)
{
int a = 0, b = 1;
for(int i = 2; i <= n; i++)
{
int c = a + b;
a = b;
b = c;
}
return b;
}
int main()
{
int n;
cout << "请输入n的值: ";
cin >> n;
cout << "斐波那契数列第" << n << "项的值为: " << fib(n) << endl;
return 0;
}
```
以上两种方法都可以计算斐波那契数列第n项的值,但是递归方法会比较慢,因为会重复计算很多项,所以在实际应用中往往使用循环方法。
c++计算斐波那契数列
在 C++ 中计算斐波那契数列,你可以使用循环、递归或动态规划等方法。以下是使用循环和动态规划的简单例子:
**1. 使用循环(迭代法):**
```cpp
#include <iostream>
size_t fibonacci(size_t n) {
if (n <= 1)
return n;
size_t fib_n1 = 0;
size_t fib_n2 = 1;
size_t current_fib = 0;
for (size_t i = 2; i <= n; ++i) {
current_fib = fib_n1 + fib_n2;
fib_n1 = fib_n2;
fib_n2 = current_fib;
}
return current_fib;
}
int main() {
int n;
std::cout << "请输入一个数字: ";
std::cin >> n;
std::cout << "第 " << n << " 个斐波那契数是: " << fibonacci(n) << std::endl;
return 0;
}
```
**2. 使用动态规划(存储中间结果):**
```cpp
#include <vector>
#include <iostream>
std::vector<size_t> fibonacci_dp(int n) {
std::vector<size_t> fibs(n + 1);
fibs[0] = 0;
fibs[1] = 1;
for (size_t i = 2; i <= n; ++i) {
fibs[i] = fibs[i - 1] + fibs[i - 2];
}
return fibs;
}
int main() {
int n;
std::cout << "请输入一个数字: ";
std::cin >> n;
std::cout << "第 " << n << " 个斐波那契数是: " << fibonacci_dp(n)[n] << std::endl;
return 0;
}
```
这两种方法都可以高效地计算斐波那契数列。如果你对递归方法感兴趣,尽管告诉我。
阅读全文