【发布时间】:2015-09-02 18:20:32
【问题描述】:
我想定义一个函数,sumAll(n) 即sums all numbers from 1 to n。
例如,当我调用sumAll(10) 时应该返回answer 55...
因为:
1+2+3+4+5+6+7+8+9+10 = 55
函数sumAll 需要使用 for 循环来执行此求和,并且它必须使用一个 sum 变量,该变量的值在 for 循环的每次迭代中都会增加。
我有一个不使用 for 循环的工作函数,但我还需要知道如何使用 for 循环来完成此操作。
这是工作程序:
def sumAll(n):
if n == 0:
return 0
return n + sumAll(n - 1)
number = int(raw_input("Please enter a number: \n"))
print ("The answer is: ") + str(sumAll(number))
如何使用“for”循环来完成此操作?
我是否正确假设 "for loop" 应该嵌套在 "sumAll" 函数中?
我已经多次尝试使用 for 循环来执行此操作,但我不断收到 infinite result and errors...
这是我的代码:
def sumAll(n):
y = n + sumAll(n -1)
return y
num = int(raw_input("Please enter a number")
for n in range(num):
num = sumAll(num)
print num
【问题讨论】:
-
您是否尝试过使用
sum()?或者任何涉及for循环的东西? -
有关
for语句用法的示例,请参阅The Tutorial。 -
你认真地想出了一个可行的递归解决方案,完成一个基本案例,但你不知道如何在 for 循环中添加数字 1-10??
-
当您尝试“很多次”时,您是否保存了这些尝试?你能包括其中一种尝试吗?
-
return n * (n + 1) / 2