我正在尝试编写一个程序来添加从1到n的数字。我已经设法让它多次打印数字,但不是全部添加。它继续添加两个数字。
我的第一次尝试是:
def problem1_3(n):
my_sum = 0
# replace this pass (a do-nothing) statement with your code
while my_sum <= n:
my_sum = my_sum + (my_sum + 1)
print()
print(my_sum)
如何解决此问题?
答案 0 :(得分:4)
您可以使用一行来创建从0
到n
的整数列表,并使用sum
函数对所有元素求和
def problem1_3(n):
return sum(range(n+1))
答案 1 :(得分:3)
我不明白为什么每个人都把事情变得复杂。 这是我的简单解决方案
my_combobox = QtWidgets.QComboBox()
my_combobox .setView(QtWidgets.QListView())
答案 2 :(得分:2)
你的代码中需要两个不同的变量 - 一个变量,你可以在迭代值并存储它们时添加它们(my_sum在我的代码中),另一个变量(我在我的代码中)迭代数字从0到n。
def problem1_3(n):
my_sum = 0
i=0
#replace this pass (a do-nothing) statement with your code
while i <= n:
my_sum = my_sum + i
print(my_sum)
i+=1
return my_sum
您在代码中使用my_sum变量来存储总和并遍历数字。
答案 3 :(得分:1)
从1到n的数字之和将大于n。例如,1到5之间的数字之和为15,显然大于5.您的while循环过早终止。你需要为循环维护一个单独的计数器。
答案 4 :(得分:1)
真正的程序员使用递归(由于Python中没有尾调用优化,所以希望得到一个不太大的n):
def problem1_3(n):
return n + problem1_3(n-1) if n > 1 else 1
答案 5 :(得分:1)
您可以使用numpy。
import numpy as np
您的函数应返回
np.sum(np.arange(1, n+1))
https://docs.scipy.org/doc/numpy-1.15.1/reference/generated/numpy.sum.html https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.arange.html
答案 6 :(得分:1)
这就是我使用“数学”来解决此类问题的地方。有一个公式可以解决这个问题:n * (n+1) / 2。
我会写的代码:
def sum(n):
return n*(n+1)/2
答案 7 :(得分:0)
你如何使用“While Loop”尝试它:
def problem1_3(n):
my_sum = 0
while my_sum <= n:
print(my_sum,end=" ") # end = " " keeps from starting a new line
my_sum = my_sum + 1
print(my_sum)
答案 8 :(得分:0)
这一行完成了这项工作:
sum(range(1, n+1))
答案 9 :(得分:0)
所以会更好
def f(a):
return (a + 1) * (abs(a) + 2 * (a <= 0)) // 2
答案 10 :(得分:0)
print("Sum =",sum(range(int(input("Enter a number\n"))+1)))
答案 11 :(得分:0)
n = input("Enter Number to calculate sum")
n = int (n)
#average = 0.
#sum = 0
sum = 0.
for num in range(0,n+1,1):
sum = sum+num
print("SUM of first ", n, "numbers is: ", sum )
# Print sum of numbers from 1 to N inclusive
def sum2N(N):
r = 0
for i in range(N+1):
#for i in range(0,N+1,1):
#r+=i
r=r+i
return(r)
print(sum2N(10))
答案 12 :(得分:0)
实际上,我已经尝试了很多此类程序 在Jupyter Notebook中,您可以使用以下命令:
n = int(input("Enter the Number: "))
print(n * (n + 1) // 2)
而且您也可以尝试以下代码:
def problem1_3(n):
return n + problem1_3(n-1) if n > 1 else 1
而且您也可以尝试
def f(a):
return (a + 1) * (abs(a) + 2 * (a <= 0)) // 2
答案 13 :(得分:0)
这个循环确实有效:
定义 main():
n = int(input('Enter a number:'))
while n <= 1:
n = int(input('Please input a new number'))
total = 0
my_sum = 0
while (n - 1) >= total:
total = total + 1
my_sum += total
print(my_sum)
return
main()
答案 14 :(得分:0)
这些行在 Python
中对我有用def summation(num):
sumX = 0
for i in range(1, num + 1):
sumX = sumX + i
return sumX
summation(3) #You place the num you need here
还有这些:
def summation(num):
return sum(range(1, num+1))
summation(3) #You place the num you need here