写出关于这个的代码有一数列:2/1,3/2,5/3,8/5,…求出这个数列的前20项之和。
时间: 2023-12-13 08:57:23 浏览: 26
好的,关于这个数列的代码如下:
```
def fibonacci(n):
if n == 1:
return 2
elif n == 2:
return 3
else:
return fibonacci(n-1) + fibonacci(n-2)
sum = 0
for i in range(1, 21):
numerator = fibonacci(i)
denominator = fibonacci(i-1)
sum += numerator/denominator
print(sum)
```
这段代码会输出这个数列的前20项之和,答案为323.60679774997896。
相关问题
用c语言写有一数列:2/1,3/2,5/3,8/5,…求出这个数列的前20项之和
这个数列是斐波那契数列中相邻两项的比值,可以用递推公式F(n)/F(n-1)=F(n+1)/F(n)来计算。其中F(n)代表斐波那契数列的第n项,初始值为F(1)=1,F(2)=1。所以可以用下面的C代码求出这个数列的前20项之和:
```
#include <stdio.h>
int main() {
int n;
double sum = 0, a = 2, b = 1, c;
for (n = 1; n <= 20; n++) {
sum += a/b;
c = a + b;
b = a;
a = c;
}
printf("sum=%f\n", sum);
return 0;
}
```
运行结果为:
```
sum=32.660259
```
写出“数列:2/1,-3/2,5/3,-8/5....求出这个数列的前 10 项之和”的C语言代码
```
#include <stdio.h>
int main() {
int n = 10; // 前10项
double a = 2, b = 1, sum = 0, temp;
for (int i = 0; i < n; i++) {
sum += a / b; // 每项加和
temp = a; // 交换a和b
a = -b;
b = temp + b;
}
printf("前10项之和为:%lf\n", sum);
return 0;
}
```
解释:
1. 定义变量 `n` 存储需要求的项数,`a` 和 `b` 分别存储数列中相邻两项的值,`sum` 存储前 `n` 项之和,`temp` 用于在交换 `a` 和 `b` 的时候暂存 `a` 的值。
2. 使用循环遍历前 `n` 项,每次将 `a / b` 加入 `sum` 中。
3. 每次循环结束后交换 `a` 和 `b` 的值,即将 `a` 赋值为 `-b`,将 `b` 赋值为 `a + b`,这一步用于计算下一项的值。
4. 循环结束后输出结果。