剑指 Offer 64. 求1+2+…+n
小于 1 分钟
剑指 Offer 64. 求1+2+…+n
- 标签:位运算、递归、脑筋急转弯
- 难度:中等
题目链接
题目大意
给定一个整数 n
。
要求:计算 1 + 2 + ... + n
,并且不能使用乘除法、for、while、if、else、switch、case 等关键字及条件判断语句(A?B:C)。
解题思路
Python 中的逻辑运算最终返回的是最后一个非空值。比如 3 and 2 and 'a'
最终返回的是 'a'
。利用这个特性可以递归求解。
代码
class Solution:
def sumNums(self, n: int) -> int:
return n and n + self.sumNums(n - 1)