EducoderC语言第2关:用函数求解级数。
任务描述
相关知识
为了完成本关任务,你需要掌握: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))