繁体   English   中英

为什么我的立方数字循环会产生不正确的输出?

[英]why is my loop of cubed digits producing incorrect outputs?

我在下面的代码中遇到了 output 的问题:

m=10
total_n = 0
n = 1
while n <= m // 2:
    for i in range(0, n):
        total_n += (n - i) ** 3
    n += 1
    print(total_n)

由于某种原因,output 为 1,10,46,146,371。

但是当我把它写在纸上时,它应该是 1,9,36,100,225。

知道代码的哪一部分不太正确吗? 干杯

要获得所需的正确结果,只需在第一个循环内初始化total_n (参见下面的代码)。 你这样做的方式, total_n跟踪所有的总和,但似乎你只想要每个n的总和。

m = 10
n = 1

while n <= m // 2:
  total_n = 0
  
  for i in range(0, n):
    total_n += (n - i) ** 3

  n += 1
  print(total_n)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM