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.求和 完