好吧,我觉得有点愚蠢,因为不知道,但一个同事问我在这里问:我写了一个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
(如果愿意,可以将其特殊用于负值。)

08-05 17:39