剑指offer:求1+2+3+...+n
程序员文章站
2024-03-15 15:49:12
...
题目描述
求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
这道题难点在于不能用判断和循环,没有办法累加求和,这里用了一个递归短路的办法,每次递归sum+1,最终状态是n=0了,不满足判断条件,递归终止。
# -*- coding:utf-8 -*-
class Solution:
def __init__(self):
self.sum=0
def Sum_Solution(self, n):
# write code here
self.count(n)
return self.sum
def count(self,n):
self.sum+=n
n=n-1
return n>0 and self.count(n)
上一篇: 123