【劍指Offer】47求1+2+3+...+n

題目描述

求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。python

時間限制:1秒;空間限制:32768Kcode

解題思路

利用邏輯運算的短路特性,做爲遞歸的終止條件。遞歸

要注意python中邏輯運算符的用法:a and b,a爲False返回a,a爲True就返回b.it

Python代碼:io

class Solution:
    def Sum_Solution(self, n):
        # write code here
        result = n
        a = n and self.Sum_Solution(n-1)
        result += a
        return result

C++代碼:class

class Solution {
public:
    int Sum_Solution(int n) {
        int ans = n;
        ans && (ans += Sum_Solution(n - 1));
        return ans;
    }
};
相關文章
相關標籤/搜索