难度中等
求 1+2+...+n
,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
class Solution:
def sumNums(self, n: int) -> int:
return int((1 + n) * n / 2)
这是使用了数学的思想
如果使用递归的思想呢?
首先确定python的布尔的操作结果:
也就是进行布尔and操作时, 两者都是true时, 会返回后者的结果, 因此
class Solution:
def sumNums(self, n: int) -> int:
return n and n + self.sumNums(n - 1)