3. 有一个分数序列: 求出这个数列的前20项之和。写出C语言代码
时间: 2024-05-14 18:19:46 浏览: 9
以下是C语言代码,可以计算出给定分数序列的前20项之和:
```
#include <stdio.h>
int main() {
double sum = 0.0;
int i;
double n;
for (i = 1; i <= 20; i++) {
n = 1.0 / ((double)i * 2 - 1);
if (i % 2 == 0) {
n = -n;
}
sum += n;
}
printf("The sum of the first 20 terms is %f\n", sum);
return 0;
}
```
这个程序使用一个for循环来遍历前20个项,并使用给定的公式来计算每个项的值。最后,程序打印出这些值的和。
相关问题
求分数序列: 求出这个数列的前20项之和
由题可知,该数列的第$n$项为$\dfrac{n}{n^2+1}$,则前20项的和为:
$\dfrac{1}{2}+\dfrac{2}{5}+\dfrac{3}{10}+\dfrac{4}{17}+\ldots+\dfrac{20}{401}$
设这个和为$S$,则有:
$S=\dfrac{1}{2}+\dfrac{2}{5}+\dfrac{3}{10}+\dfrac{4}{17}+\ldots+\dfrac{20}{401}$
将分式通分并相加,得:
$\begin{aligned} S&=\dfrac{1\cdot 17\cdot 401+2\cdot 17\cdot 401+3\cdot 10\cdot 401+4\cdot 5\cdot 401+\ldots+20\cdot 2\cdot 5}{2\cdot 5\cdot 10\cdot 17\cdot\ldots\cdot 401} \\ &=\dfrac{17\cdot 401\cdot (1+2\cdot 10\cdot 17+\ldots+20\cdot 2\cdot 5)}{2\cdot 5\cdot 10\cdot 17\cdot\ldots\cdot 401} \end{aligned}$
由于$1+2\cdot 10\cdot 17+\ldots+20\cdot 2\cdot 5$是一个等差数列,因此可以用求和公式求出:
$1+2\cdot 10\cdot 17+\ldots+20\cdot 2\cdot 5=\dfrac{20\cdot (1+40)}{2}=420$
代入上式,得:
$\begin{aligned} S&=\dfrac{17\cdot 401\cdot 420}{2\cdot 5\cdot 10\cdot 17\cdot\ldots\cdot 401} \\ &=\dfrac{17\cdot 420}{2\cdot 5} \\ &=1422 \end{aligned}$
因此,该数列的前20项之和为$1422$。
有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
这个数列可以发现是斐波那契数列的每一项除以前一项,即:
2/1,3/2,5/3,8/5,13/8,21/13...
可以写成:
2/1,2/3,3/5,5/8,8/13,13/21...
因此,这个数列的前20项之和可以通过以下方法计算:
设S为前20项之和,则:
S = 2/1 + 2/3 + 3/5 + 5/8 + 8/13 + 13/21 + ...
将每一项化成通分的形式:
S = (2*15 + 2*5 + 3*3 + 5*3 + 8*2 + 13*2 + ...) / (1*3*5*8*13*21*...)
可以发现分母为斐波那契数列的乘积,即:
1*2*3*5*8*13*21*34*55*89*144*233*377*610*987*1597*2584*4181*6765*10946
利用这个乘积的值可以将分子中的每一项化简,得到:
S = (2*15 + 2*5 + 3*3 + 5*3 + 8*2 + 13*2 + ...) / 10946
化简得:
S = 232.5609...
因此,这个数列的前20项之和约为232.5609。