好吧,我觉得有点愚蠢,因为不知道,但一个同事问我在这里问:我写了一个Python算法,解决他的问题。给定x>0,将从1到x的所有数字相加。
def intsum(x):
if x > 0:
return x + intsum(x - 1)
else:
return 0
intsum(10)
55
首先,这是什么类型的方程,什么是正确的方式得到这个答案,因为它显然更容易使用其他方法?
最佳答案
这是递归,但由于某种原因,您将其标记为阶乘。
在任何情况下,从1到n的和也是简单的:n * ( n + 1 ) / 2
(如果愿意,可以将其特殊用于负值。)