0
点赞
收藏
分享

微信扫一扫

剑指offer 编程题(46):求1+2+3+...+n

秀妮_5519 2023-06-01 阅读 118


题目描述
求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。

class Solution {
public:
    int Sum_Solution(int n) {
        if(n == 1)
            return n;
        int sum = n+Sum_Solution(n-1);
        return sum;
    }
};

class Solution {
public:
    int Sum_Solution(int n) {
        return n*(1+n)/2;
    }
};

class Solution {  
public:  
    int Sum_Solution(int n) {  
        int sum = n;  
        sum && (sum += Sum_Solution(n-1));  
        return sum;  
    }  
};

class Tmp
{
public:
    Tmp()
    {
        ++N;
        Sum+=N;
    }
    static void Reset(){N = 0; Sum = 0;}
    static unsigned int GetSum() {return Sum;}
private:
    static unsigned int N ;
    static unsigned int Sum; 
};
unsigned int Tmp::N = 0;
unsigned int Tmp::Sum = 0;
class Solution
{
public:
    friend class Tmp;
public:
    int Sum_Solution(int n)
    {
        Tmp::Reset();
        Tmp *a = new Tmp[n];
        delete[] a;
        a = NULL;
        return Tmp::GetSum();
    }

};

class Solution {
public:
    int Sum_Solution(int n) {
        int ans = n;
        ans && (ans += Sum_Solution(n - 1));
        return ans;
    }
};

class Solution {  
public:  
    int Sum_Solution(int n) {  
        int sum = n;  
        n && (sum += Sum_Solution(n-1));  
        return sum;  
    }  
};

class Solution {  
public:  
    int Sum_Solution(int n) {  
        int sum = n;  
        if(n == 1)
        {
            return 1;
        }
        return sum + Sum_Solution(n-1);  
    }  
};

class Solution {
public:
    int Sum_Solution(int n) {
        int ret = n;
        n == 0 || (ret += Sum_Solution(n - 1));
        return ret;
    }
};

class Solution {
public:
    int Sum_Solution(int n) {
        int ret = 0;
        n == 0 || (ret = Sum_Solution(n - 1));
        return n + ret;
    }
};


举报

相关推荐

0 条评论