美文网首页
剑指offer 面试题46:求1+2+...+n

剑指offer 面试题46:求1+2+...+n

作者: qmss | 来源:发表于2016-06-08 10:38 被阅读0次

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

解法一:

class Solution {
    public:
        Solution() {
            ++n;
            sum += n;
        }

        static int getSum() {
            return sum;
        }

    private:
        static int n;
        static int sum;
};

int Solution::n = 0;
int Solution::sum = 0;

int main() {
    Solution *p = new Solution[n];
    delete[] p;
    cout << Sulotion::getSum() << endl;
}

解法二:

class A;
A* arr[2];

class A {
    public:
        virtual int sum(int n) {
            return 0;
        }
};

class B : public A {
    public:
        virtual int sum(int n) {
            return arr[!!n]->sum(n-1) + n;
        }
};

arr[0] = new A();
arr[1] = new B();

int val = arr[1]->sum(n);
delete []arr;

相关文章

网友评论

      本文标题:剑指offer 面试题46:求1+2+...+n

      本文链接:https://www.haomeiwen.com/subject/gkljdttx.html