题目要求:
求1+2+...+n,要求不使用乘除法,for,while,if,else,switch等关键字及条件判断语句(A?B:C)
class Sum {
public:
Sum()
{
sum += i;
++i;
}
static int GetSum()
{
return sum; //返回构造函数创建的次数
}
static void Init() //确保每次执行初始化
{
i = 1;
sum = 0;
}
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]; //构造n个对象,[n]变长数组,不支持
Sum::Init(); //重新开始
Sum* p = new Sum[n];
return Sum::GetSum();
}
};
int main()
{
Solution sl;
cout << sl.Sum_Solution(5) << endl;
cout << sl.Sum_Solution(5) << endl; //不加Init,此语句错误
}