我不明白这段代码是如何工作的。编写一个代码来打印前n(输入)自然数的总和


# Write a code that prints the sum of the first n(input) natural numbers.
n = int((input("Enter The Value: ")))
s = 0
for i in range(1,n+1):
s += i
print(s)

我弄清楚了代码,但我不明白这个代码是如何工作的。请帮帮我。

我对这个代码的工作原理感到困惑。

让我们逐行进行:

n = int((input("Enter The Value: ")))

变量n分配给用户输入的转换为整数的值

s = 0

变量s分配给值0

for i in range(1,n+1):

这是一个数字范围的循环,从数字1到用户传递的数字加一。我想你的理解问题就在这里。

range的第二个参数是独占停止值,这意味着如果用户通过5,范围将是range(1,5),这意味着您的范围将在1到4之间。

s += i

在这里,您正在递增变量s的值。

print(s)

打印变量s的值。

顺便说一句,不需要对所有数字逐一求和(复杂性O(n((。你应该用一些基本的数学来代替:

n = input('Enter the value: ')
result = n * (n + 1) // 2

第一行

n = int((input("Enter The Value: ")))

要求用户输入一个值并将其转换为整数。然后,将变量s设置为0。然后,循环遍历从1到插入的数字的所有值,对于每次迭代,将要迭代的数字的值添加到s

让我们假设n=5。s=0对吗?

for i in range(1,n+1): -> n+1 is now 6... 
s += i -> meaning... 0=0+1 -> 1=1+2 -> 3=3+3 and so on until i is n+1(6).

因为CCD_ 17总是再继续一次,s也在不断攀升。在这种情况下,s的结果将为=15

最新更新