吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1411|回复: 10
收起左侧

[学习记录] 用python求分数数列的前20项之和

[复制链接]
甜萝 发表于 2022-5-25 20:33
本帖最后由 paypojie 于 2022-5-31 22:24 编辑

[Python] 纯文本查看 复制代码
# 有一分数序列: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
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
[Python] 纯文本查看 复制代码
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
[Python] 纯文本查看 复制代码
# 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
2022-05-26_092018.jpg
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)
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 11:46

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表