求1/1+1/2+2/3+3/5+5/8+8/13+13/21+21/34……的前n项的和。 c++
时间: 2023-05-25 08:06:12 浏览: 320
python 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和 (示例)
5星 · 资源好评率100%
这是一个斐波那契数列的变形:分数项的分子和分母分别为相邻两项斐波那契数列中的数。
设前n项和为S,根据斐波那契数列的递推关系有:
1/1 = 1/1
1/2 = 1/2
2/3 = 1/2 + 1/3
3/5 = 2/3 + 1/5
5/8 = 3/5 + 2/8
8/13 = 5/8 + 3/13
13/21 = 8/13 + 5/21
21/34 = 13/21 + 8/34
…
可以发现,从第三项开始,每一项可以拆分为前一项和前两项的和。因此有:
S = 1/1 + 1/2 + 2/3 + 3/5 + 5/8 + 8/13 + 13/21 + 21/34 + … + F(n-1)/F(n)
S = 1/1 + 1/2 + (1/2 + 1/3) + (2/3 + 1/5) + (3/5 + 2/8) + (5/8 + 3/13) + (8/13 + 5/21) + (13/21 + 8/34) + … + F(n-1)/F(n)
S = 1 + (1/2 + 1/2) + (1/3 + 2/3) + (1/5 + 3/5) + (2/8 + 5/8) + (3/13 + 8/13) + (5/21 + 13/21) + (8/34 + 21/34) + … + (F(n-2)+F(n-1))/F(n)
S = n + F(n-1)/F(n)
其中F(n)表示第n个斐波那契数。因此,S的计算只需要知道第n个斐波那契数即可。
阅读全文