您好我被问到以下内容:
考虑这个系列 总= 1/1 + 1/2 + 1/3 + 1/4 + 1/5 .... + 1 / N. 添加的最大术语数(即N的值)是多少,使得总计< 5.0? (当总和小于5.0时,写几行Python代码停止)
到目前为止,我的所作所为:
m = 5
n= 0
u = 1
sum_serie = 0
for u in range(1,100):
u = 1/(n+1)
n= n+1
while u < m:
sum_serie = sum_serie + u
print(sum_serie)
print(n)
它不起作用。有人能解释一下吗这样做有更简单的方法吗? 感谢
答案 0 :(得分:0)
这可能是更正后的版本:
m = 5
n = 0
sum_series = 0
while sum_series < m:
u = 1. / (n + 1)
sum_series = sum_series + u
n = n + 1
print(sum_series)
print(n)
打印:
5.00206827268
83
首先,您的while
循环应具有条件sum_serie < m
,而部分u = 1. / (n + 1)
和n = n + 1
应位于该循环内,如图所示。 for
循环无法执行您需要的操作,因此已将其删除。
答案 1 :(得分:0)
要循环到极限以下的数字,只需将限制检查为循环条件(此处为while
)并更改循环内的值。喜欢的东西;
limit = 5
n = 0
sum_serie = 0
while sum_serie + 1./(n+1) < limit:
sum_serie += 1./(n+1)
n += 1
print(sum_serie)
print(n)
对于您的数据,您将获得输出;
4.9900200799090815
82