【C++ OJ练习】1.求和

1.题目链接

求1+2+3+...+n_牛客题霸_牛客网

2.解题思路

利用C++构造函数的特性 既然不能使用循环 那么我们可以定义n个对象 就会调用n次构造函数

去代替循环 每次调用的时候进行加法的计算

3.代码

class Sum
{
public:
    Sum()
    {
        _sum += _i;
        ++_i;
    }

    static void Init()
    {
        _i = 1;
        _sum = 0;
    }

    static int GetSum()
    {
        return _sum;
    }

private:
    static int _i;
    static int _sum;
};

//定义加初始化
int Sum::_i = 1;
int Sum::_sum = 0;

class Solution {
public:
    int Sum_Solution(int n) {
        //Sum a[n];//C99变长数组
        //定义n个对象 调用n次构造函数 代替循环
        //最后_sum就是1+2+......+n
        //OJ多个测试用例一次测试 每次开始前要初始化
        Sum::Init();
        Sum* p = new Sum[n];//动态开辟
        return Sum::GetSum();
    }
};

4.运行结果

【C++ OJ练习】1.求和_第1张图片

【C++ OJ练习】1.求和 完

你可能感兴趣的:(C++,OJ练习,c++,算法,数据结构)