鱼C论坛

 找回密码
 立即注册
查看: 4406|回复: 11

[已解决]python例题求助

[复制链接]
发表于 2022-10-13 08:46:23 | 显示全部楼层 |阅读模式
10鱼币
求数列前10项的和:s=1-1/2!+1/3!-1/4!+1/5!…  
最佳答案
2022-10-13 08:46:24
  1. s='1-1/2!+1/3!-1/4!+1/5!'
  2. total = 0
  3. for i in s:
  4.     if i.isdigit() == True:    #isdigit判断是否数字
  5.         total += int(i)     #原为str,+会变成合并,转为int +变成运算
  6. print(total)
复制代码


或者这样也行

最佳答案

查看完整内容

或者这样也行
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-10-13 08:46:24 | 显示全部楼层    本楼为最佳答案   
  1. s='1-1/2!+1/3!-1/4!+1/5!'
  2. total = 0
  3. for i in s:
  4.     if i.isdigit() == True:    #isdigit判断是否数字
  5.         total += int(i)     #原为str,+会变成合并,转为int +变成运算
  6. print(total)
复制代码


或者这样也行
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-10-13 09:33:53 | 显示全部楼层
s=1-1/2!+1/3!-1/4!+1/5!------1/s!这个数列?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-10-13 09:50:18 | 显示全部楼层
本帖最后由 jackz007 于 2022-10-13 09:56 编辑
  1. def foo(n):
  2.     s , b , f = 0 , 1 , 1
  3.     for i in range(1 , n + 1):
  4.         b *= i
  5.         s , f = s + f / b , -f
  6.     return s

  7. print(foo(10))
复制代码

        运行结果:
  1. D:\[00.Exerciese.2022]\Python>python x.py
  2. 0.6321205357142857

  3. D:\[00.Exerciese.2022]\Python>
复制代码

        这个对吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-10-13 09:52:56 | 显示全部楼层
  1. s='1-1/2!+1/3!-1/4!+1/5!'
  2. ls = []
  3. for i in s:
  4.     if i.isdigit() == True:    #isdigit判断是否数字
  5.         ls.append(int(i))      #原为str,加入转为int方便统计
  6. print(sum(ls))                  #sum能求list和
复制代码


输出
19

是这个意思吗  你的题目不太清楚
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-10-13 10:17:04 | 显示全部楼层

       10! 是 10 的阶乘的意思
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-10-13 10:23:52 | 显示全部楼层
  1. s = 0
  2. a = 1
  3. n = 10
  4. for i in range(1,n+1):
  5.     a = a*i
  6.     if i%2 == 0:
  7.         s = s - 1/a
  8.     else:
  9.         s = s + 1/a
  10. print(s)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-10-13 10:35:59 | 显示全部楼层
  1. import math

  2. '''
  3. s=1-1/2!+1/3!-1/4!+1/5!…  
  4. 求前10项目,那么n=10,
  5. 通过这个数列可观察到,偶数的减,奇数的是加,
  6. 于是我就设置2个变量分别接收前10项偶数的结果,与奇数的结果,最后在进行计算
  7. 我这里阶乘算法是使用的math模块中的factorial函数
  8. '''

  9. num01 = 0  # 接收数列中所有偶数的和
  10. num02 = 0  # 接收数列中所有奇数的和
  11. for i in range(2,11):  # 因为是求前10项,所以就到11,又因为数列首项是1,就把1给剔除掉
  12.     if i%2 == 0:  # 判断是否为偶数
  13.         num_01 = 1/math.factorial(i)
  14.         num01 += num_01
  15.     else:
  16.         num_02 = 1/math.factorial(i)
  17.         num02 += num_02

  18. sum = 1 - num01 + num02
  19. print('数列s=1-1/2!+1/3!-1/4!+1/5!… 前10项的和为:{}'.format(sum))
复制代码



运行结果为:
  1. 数列s=1-1/2!+1/3!-1/4!+1/5!… 前10项的和为:0.6321205357142857
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-10-13 10:42:29 | 显示全部楼层

其实range那个可以不用把1去掉,最后计算sum时,直接num02-num01 也是一样的
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-10-13 10:55:53 | 显示全部楼层
简短一点的话
  1. import math;print(sum([1/math.factorial(i) if i & 1 else -1/math.factorial(i) for i in range(1,11)]))
复制代码
  1. python -c 'import math;print(sum([1/math.factorial(i) if i & 1 else -1/math.factorial(i) for i in range(1,11)]))'
  2. 0.6321205357142857
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-10-14 19:01:16 | 显示全部楼层
def test():
        x = []
        for i in range(10):
                i += 1
                # i 为偶数
                if i % 2 == 0:
                        i = 1 / i
                x.append(i)
        return sum(x)
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-10-14 19:16:30 | 显示全部楼层
s=0
p=-1
for i in range(1,4):
    x=1
    for j in range(1,i+1):
        x=x*j
    s=p*(-1)*1/x
print(s)
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-26 14:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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