Python从1到n的数字总和
示例
如果我想找出数从和1到n哪里n是自然数,我能做到1+2+3+4+...+(severalhourslater)+n。另外,我可以编写一个for循环:
n = 0 for i in range (1, n+1): n += i
或者我可以使用一种称为递归的技术:
def recursion(n): if n == 1: return 1 return n + recursion(n - 1)
递归相对于以上两种方法具有优势。递归所需的时间少于写出1+2+31至3的总和的时间。对于recursion(4),递归可用于后退:
函数调用:(4->4+3->4+3+2->4+3+2+1->10)
而for循环严格向前运行:(1->1+2->1+2+3->1+2+3+4->10)。有时,递归解决方案比迭代解决方案更简单。这在实现链表反转时很明显。