Python - 系列中添加的最大术语数,使得总和< 5?

时间:2014-09-17 04:18:34

标签: python

您好我被问到以下内容:

考虑这个系列 总= 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)

它不起作用。有人能解释一下吗这样做有更简单的方法吗? 感谢

2 个答案:

答案 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