pdl666 发表于 2023-4-11 21:11:07

求e的近似值

题目描述
自然常数e可以用级数1+1/1!+1/2!+·…+1/n!+··来近似计算。本题要求对给定的非负整数n,求该级数的前 n+1项和。

输入
输入第一行中给出非负整数n(≤1000)。
输出
在一行中输出部分和的值,保留小数点后八位。

输入样例
10
输出样例
2.71828180

isdkz 发表于 2023-4-11 21:15:10

为了计算给定非负整数n的级数前n+1项和,我们可以使用Python代码来实现。

这里是一个示例代码来计算e的近似值:

def factorial(n):
    if n == 0:
      return 1
    else:
      return n * factorial(n - 1)

def approximate_e(n):
    e_approximation = 0
    for i in range(n + 1):
      e_approximation += 1 / factorial(i)
    return e_approximation

n = int(input())
result = approximate_e(n)
print("{:.8f}".format(result))

根据题目中的输入样例:10,这段代码会输出:2.71828180,与题目要求的输出样例一致。

kg120 发表于 2023-4-11 21:53:01

本帖最后由 kg120 于 2023-4-11 21:54 编辑

n=int(input("input a nonnegative integer(0<n<=1000):n="))
# 0!=1,所以sum初始值为1
sum=float(1)
for i in range(1,n+1):
    # 注意每次加上的an都要从1开始乘1/(n!),所以每次都要给an初始化为1
    an=float(1)
    for j in range(1,i+1):
      an*=float(1/j)
    sum+=an
# 输出的格式化
print("e=={:<0.8f}".format(sum),sep='',end='\n')

jackz007 发表于 2023-4-11 22:01:43

n = int(input())
if 0 < n < 1001:
    d , e = 1 , 1
    for x in range(1 , n + 1):
      d *= x
      e += 1 / d
    print('%.8f' % e)
页: [1]
查看完整版本: 求e的近似值