甜萝 发表于 2022-5-25 20:33

用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

谢谢你的分享我也来学习了

甜萝 发表于 2022-5-25 21:51

戰龍在野 发表于 2022-5-25 21:49
谢谢你的分享我也来学习了

加油加油:lol

taxuewuhen 发表于 2022-5-25 22:26

好好的研究一下

yuqilin234 发表于 2022-5-25 23:03

变量命名还是可以更规范些得

甜萝 发表于 2022-5-25 23:04

yuqilin234 发表于 2022-5-25 23:03
变量命名还是可以更规范些得

谢谢提醒

lzngy 发表于 2022-5-25 23:59

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)

水墨青云 发表于 2022-5-26 00:18

# 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))

slbcmgn 发表于 2022-5-26 07:51

学习一下,也希望大佬来讲解

5151diy 发表于 2022-5-26 09:22


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
查看完整版本: 用python求分数数列的前20项之和