用python求分数数列的前20项之和
本帖最后由 paypojie 于 2022-5-31 22:24 编辑# 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
# 分析 从第二项开始 分子等于前面的分子加分母 分母满足斐波那契数列规律 先定义两个初始变量 代表分子和分母 再定义一个变量 用来保存前20个分数之和
n = 2
k = 1
a = 1
# 定义一个for循环 循环20次 定义一个变量来接收 第一分子除以第一个分母的结果 用sum累加值
n = 2
k = 1
a = 1
for i in range(1,21):
r = n / k
sum += r
# 每进入一次for循环 n和k就同手发生改变 n等于自身加k k就用写好的fib函数返回 最后再输出结果
n = 2
k = 1
a = 1
sum = 0
def fib():
global a
global k
a,k = k,a+k
return k
for i in range(1,21):
r = n / k
sum += r
n = n + k
fib()
print(sum)
# 这是上一篇帖子的链接 https://www.52pojie.cn/thread-1641001-1-1.html 谢谢你的分享我也来学习了 戰龍在野 发表于 2022-5-25 21:49
谢谢你的分享我也来学习了
加油加油:lol 好好的研究一下 变量命名还是可以更规范些得 yuqilin234 发表于 2022-5-25 23:03
变量命名还是可以更规范些得
谢谢提醒 n = 2
k = 1
sum = 0
for i in range(6):
if i > 0:
n += k
k = n - k
print(f"{n}/{k}", n/k)
sum += n/k
print(sum) # n:分子 k:分母 num:前n项
def fs(n, k, num):
if not num:
return 0
print("%d:%d/%d=%f" % (num, n, k, n / k))
return n / k + fs(n + k, n, num - 1)
print('sum =', fs(2, 1, 20)) 学习一下,也希望大佬来讲解
python
s=0;a=2;b=1
i=eval(input('请输入i='))
for i in range(1,21):
s=s+a/b
t=a;a=a+b;b=t
print(s)
页:
[1]
2