天天看点

求1+2+...+n求1+2+…+n

求1+2+…+n

  时间限制:1秒 空间限制:32768K 热度指数:103360

题目描述

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

题目分析

可以通过定义一个n维的对象数组来实现n个数的加法,代码如下:

代码实现

class A
{
private:
    static int m_iOrder;
    static int m_iSum;
public:
    A()
    {
        m_iOrder++;
        m_iSum += m_iOrder;
    }
    static void Init()
    {
        m_iOrder = ;
        m_iSum = ;
    }
    static int getSum()
    {
        return m_iSum;
    }
};

int A::m_iOrder = ;
int A::m_iSum = ;

class Solution {

public:
    int Sum_Solution(int n) {
        A::Init();
        A *a = new A[n];
        delete[] a;
        return A::getSum();
    }
};