【发布时间】:2022-01-25 07:03:16
【问题描述】:
我必须编写一个程序,要求用户输入一个限制。然后程序计算连续数字的总和(1 + 2 + 3 + ...),直到总和至少等于用户设置的限制。
除了结果之外,它还应该打印出执行的计算。我应该只用一个 while 循环,没有列表或 True 条件来做到这一点。
limit = int(input("Limit:"))
base = 0
num = 0
calc = " "
while base < limit:
base += num
num += 1
calc += f" + {num}"
print(base)
print(f"The consecutive sum: {calc} = {base}")
因此,例如,如果输入为 10,则输出应为 10,其下方应为“连续总和:1 + 2 + 3 + 4 = 10”。如果输入为 18,则输出应为 21,其下方应为“连续总和:1 + 2 + 3 + 4 + 5 + 6 = 21。”
现在我可以让它打印最终结果(基数)并让它打印出计算,但它打印出的整数太多了。如果输入是 10,它应该在 5 之前停止时打印出 1 + 2 + 3 + 4 + 5。
【问题讨论】:
-
你试过什么?忽略程序的其余部分。这与你问的问题无关。我在循环结束时给你
num,你不在乎它来自哪里,我也不在乎。你如何打印1 + 2 + ... + num? -
主要线索 :) 如果您使用
print("something", end =""),您可以打印而无需每次都换行。 -
有几种方法可以制作这样的字符串,其中一种是与您的其他计算一起构建它,例如
mystring += " +" + str(num),当然还要相应地初始化字符串变量 -
这与您的last question 有何不同?
-
@sayse 这次我需要实际展示计算。