没加绝对值
不知道你这个问题是否已经解决, 如果还没有解决的话:(PS:限于作者水平,如有表述不妥之处,欢迎大家指出,另外欢迎大家关注微信公众号“24K纯学渣”,作者将会把处理好的程序共享到公众号上,请期待!)
#添加prompt
"""
问题标题: 级数计算程序优化
问题内容: 请帮我优化这个程序,实现如下级数的计算直到最后一项的绝对值小于10^(-6)。我仅允许修改两行。
以下是该程序:
"""
s = 0 #定义s为0
n = 1 #定义n为1
while 1.0 / n >= 1e-6: #当1/n大于等于10^(-6)时循环执行下列语句
s += 1.0 / n #s加上1/n
n += 1 #n加1
print(s) #输出s的值
"""
解决方案:由于该程序实现的是级数计算,这里可以选择用for循环代替while循环,更加易读;同时可以优化n的初值为2,
每次加2,可以节省一部分计算时间。实现如下:
"""
s = 1 #定义s为1
for n in range(2, 10**10, 2): #循环初始值为2,每次加2,直到10^10-2为止。
add = 1.0 / n + 1.0 / (n + 1) #每次加上相邻两项之和
if add < 1e-6: #当相邻两项之和小于10^(-6)时,退出循环
break
else:
s += add #否则加上相邻两项之和
print(s) #输出级数计算结果