【问题标题】:Sum of odd numbers in a range范围内奇数的总和
【发布时间】:2013-08-03 02:31:13
【问题描述】:

从 1523 到 10503 的奇数之和是多少?提示:编写一个while循环来累积和打印它。然后复制并粘贴该总和。为了最大限度地学习,也可以使用 for 循环,使用 range。

我试过了。我需要打印总和。我的回答给了我个人的运行。

i=1523
while i<10503:
    sum=0
    i=i+2
    sum=sum+i
    print(sum)


for i in range(1523,10503):
    print(i+2)

【问题讨论】:

  • 确保在发布时正确格式化您的代码。空格在 Python 中很重要。
  • 我可能读错了您的要求,但似乎 sum=0 应该在循环之外。
  • 提示:奇数等于 1 模 2;即 3 % 2 == 1。
  • 小伙伴们请注意,不要使用sum,因为它是python内置的。
  • 可能不是“不要使用sum”,而是“避免使用sum”。这不是一成不变的法律。

标签: python for-loop while-loop


【解决方案1】:

您的作业说“包含”,因此您应该将 10503 包括在总和中:

i = 1523
total = 0
while i <= 10503:
    total += i
    i += 2
print (total)

total = 0
for i in range (1523, 10504, 2):
    total += i
print (total)

同时避免使用内置名称,例如sum。因此我将其更改为total

附带说明:尽管您的作业明确要求控制语句,但您(或至少我)将其实现为:

print (sum (range (1523, 10504, 2) ) )

【讨论】:

  • 关于它的简洁性的惊人综合答案。当然,在 ctypes.c_int 周围的包装器上的变异 __iadd__ 方法上没有 reduce... :)
【解决方案2】:

正如 Troy 所说,将 sum=0 放在循环之前。然后将print(sum)放在while循环之后。

【讨论】:

  • 我认为他没有添加最后一个数字,因为作业说包含在内
猜你喜欢
  • 1970-01-01
  • 2016-09-11
  • 1970-01-01
  • 2016-10-19
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多