《剑指Offer》刷题之求1+2+3+…+n
我不知道将去向何方,但我已在路上! |
---|
时光匆匆,虽未曾谋面,却相遇于斯,实在是莫大的缘分,感谢您的到访 ! |
- 题目:
求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 - 示例:
示例 1 :
输入:5
返回值:15
- 代码1:
# -*- coding:utf-8 -*-
# -*- coding:utf-8 -*-
class Solution:
def Sum_Solution(self, n):
return sum(list(range(1,n+1)))
- 算法说明:
调用sum
函数,直接求取列表[1,2,3,...,n]
元素之和。 - 代码2:
# -*- coding:utf-8 -*-
class Solution:
def Sum_Solution(self, n):
temp = n
return n and n + self.Sum_Solution(n-1)
- 算法说明:
使用递归,将递归条件n=0
巧妙设置为逻辑语句,如果满足,则递归过程结束,返回结果。