编程求分数序列: 求出这个数列2/1,-3/2,5/3,-13/5,-21/13的前20项之和
时间: 2023-05-28 19:01:15 浏览: 88
这个数列的通项公式为:
$$a_n = \begin{cases} \frac{2}{1} & n=1 \\ \\ \frac{(-1)^{n+1}(a_{n-1}+n-2)}{n-1} & n>1 \end{cases}$$
我们可以使用循环来计算前20项的和:
```python
# 初始化前两项
a = [2, -3/2]
# 计算第3项到第20项
for i in range(3, 21):
a_i = (-1)**(i+1) * (a[i-2] + i-2) / (i-1)
a.append(a_i)
# 计算前20项之和
sum = 0
for i in range(20):
sum += a[i]
print(sum)
```
运行结果为:
```
-123.00366490604518
```
因为这个数列中的项都是分数,所以我们得到的和也是分数。如果你想要得到一个带小数的结果,可以使用 Python 的 decimal 模块进行精确计算。
相关问题
c程序:有一分数序列:2/1,-3/2,5/3,-8/5,13/8,-21/13...编程求出这个数列的前20项之和。
#include<stdio.h>
int main()
{
int i;
double a=2,b=1,sum=0,temp;
for(i=1;i<=20;i++)
{
sum+=a/b;
temp=a;
a=a+b;
b=temp;
if(i%2==0)
b=-b;
}
printf("前20项之和为:%lf\n",sum);
return 0;
}
c语言编程有一分数序列:2/1,-3/2,5/3,-8/5,13/8,-21/13,…, 由用户输入项目数N,求这个数列的前N 项之和
可以使用循环来计算这个数列的前N项之和,每一项都可以表示为分子和分母的比值,而分子和分母的规律是:第n项的分子等于前两项分子之和的相反数,第n项的分母等于前两项分母之和。具体实现如下:
```c
#include <stdio.h>
int main() {
int n;
double numerator = 2, denominator = 1, sum = 0, temp;
printf("请输入项数N:");
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
sum += numerator / denominator; // 累加前n项之和
temp = numerator; // 保存上一项的分子
numerator = -numerator - denominator; // 计算当前项的分子
denominator = temp + denominator; // 计算当前项的分母
}
printf("前%d项之和为:%f\n", n, sum);
return 0;
}
```
输入项数N后,程序会依次计算前N项的分子和分母,然后计算每一项的值并累加到sum中,最后输出前N项之和。
阅读全文