题目:求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
思路:
- 短路法
- if a and b: 如果a是false 就不需要判断b的值
- if a or b:如果a是true 就不需要判断b的值
class Solution:
def Sum_Solution(self, n):
# write code here
# 采用短路法
return n and self.Sum_Solution(n-1)+ n
详解:
- return a and b 就等价于 return b if a else a
- 意思就是如果a成立的时候就返回b否则就返回a
- if n 应该是表示 n>0的把