c++ 第一项是0,第二项是1,以后每两项都是前两项之和,求前20项之和
时间: 2023-12-31 20:05:19 浏览: 41
这是一个经典的斐波那契数列问题,可以使用循环或递归来解决。以下是使用循环计算前20项斐波那契数列并求和的C++代码:
```c++
#include <iostream>
int main() {
int a = 0, b = 1, sum = 0;
for (int i = 0; i < 20; i++) {
sum += b;
int c = a + b;
a = b;
b = c;
}
std::cout << "The sum of the first 20 Fibonacci numbers is: " << sum << std::endl;
return 0;
}
```
输出结果为:
```
The sum of the first 20 Fibonacci numbers is: 17710
```
因此,前20项斐波那契数列的和为17710。
相关问题
一个数列,前两项分别为1,2.从第3项开始每项都是前两项和的二倍,求这个数列的第二十项。用c++编程
```c
#include <stdio.h>
int main() {
int a[21]; // 定义数组存储数列
a[1] = 1;
a[2] = 2;
for (int i = 3; i <= 20; i++) {
a[i] = 2 * (a[i-1] + a[i-2]);
}
printf("第20项为:%d\n", a[20]);
return 0;
}
```
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 类型来存储斐波那契数列的项,以避免数据溢出的问题。