题目描述
求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
解题思路:
短路与,复杂度O(n)
class Solution:
def Sum_Solution(self, n):
# write code here
ans = n
ans += ans and self.Sum_Solution(n-1)
return ans
解题思路二:
我们可以用等差数列求和公式求,由于不让使用乘法,所以我们可以自己写一个乘法。
class Solution:
def Sum_Solution(self, n):
# write code here
def multi(a,b):
res = 0
res += (a&1) and b
a >>=1
b <<=1
res+= a and multi(a,b)
return res
return multi(n+1,n)>>1