题解 | #求1+2+3+...+n#

求1+2+3+...+n

https://www.nowcoder.com/practice/7a0da8fc483247ff8800059e12d7caf1

class Sum
{
public:
   //构造函数完成初始化
    Sum()
    {
        _sum+=_i;
        _i++;
    }
    
    //每次测试输入调用完整个代码之后,要重置一下_sum和_i
    //不然下一次输入n的时候,初始时_sum和_i还是上一次的值
    static void Init()
    {
        _sum=0;
        _i=1;
    }


    //返回_sum的值
    static int GetSum()
    {
        return _sum;
    }
private:
   //static成员可以保持是同一个_sum和_i变量
   //利于累加
   static int _sum;
   static int _i;
};

//static成员得在类外面定义
int Sum::_sum=0;
int Sum::_i=1;


class Solution {
public:
    int Sum_Solution(int n) {
        //每次进来时先要完成:
        //重置一下_sum和_i
        Sum::Init();
        //定义了一个含有n个元素的数组对象
        //这n个元素都是Sum这个类所创建的对象
        //所以上面的构造函数要调用n次
        //就相当于完成了累加的循环
        Sum a[n];
        //返回的就是Sum中GetSum所返回的经历n次调用后的_sum的值
        return Sum::GetSum();
    }
};

全部评论

相关推荐

无情咸鱼王的秋招日记之薛定谔的Offer:好拒信,偷了,希望有机会用到
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务