EducoderC语言第2关:用函数求解级数。

EducoderC语言第2关:用函数求解级数。
任务描述

img

相关知识
为了完成本关任务,你需要掌握:1.如何获取级数和计算模型,2.如何判断达到结束条件。

编程要求
根据提示,在右侧编辑器补充代码。

测试说明
平台会对你编写的代码进行测试:

测试输入:5.0 0.000001
预期输出:
1.249999360000000

开始你的任务吧,祝你成功!

# 获取级数和计算模型
def get_sum(x, eps):
    # 初始化求和项和总和为0
    term = sum = 0.0
    
    # 初始化n=1,进入循环
    n = 1
    while True:
        # 计算本次求和项
        term = (-1)**(n+1) * x**(2*n-1) / (2*n-1)
        # 将该项加入总和中
        sum += term
        
        # 如果当前项的绝对值小于eps,则退出循环
        if abs(term) < eps:
            break
            
        # 更新n的值
        n += 1
    
    return sum

# 判断达到结束条件
def is_finished(x, eps):
    # 如果x等于0,则直接返回True
    if x == 0:
        return True
    else:
        # 否则判断第一项是否小于eps的绝对值
        first_term = x / 1
        return abs(first_term) < eps

# 主函数
if __name__ == '__main__':
    # 读取输入数据
    x, eps = map(float, input().split())
    
    # 如果达到结束条件,则输出第一项
    if is_finished(x, eps):
        print('{:.10f}'.format(x/1))
    else:
        # 否则进行求和并输出结果
        result = get_sum(x, eps)
        print('{:.10f}'.format(result))