题目描述
求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
思路1
用于不能用循环,所以可以用构造函数来实现循环的功能。
思路1代码
class Temp{
public:
Temp(){
++N;
Sum += N;
}
static void Reset(){
N = 0;
Sum = 0;
}
static unsigned int GetSum(){
return Sum;
}
private:
static unsigned int N;
static unsigned int Sum;
};
unsigned int Temp::N = 0;
unsigned int Temp::Sum = 0;
class Solution {
public:
int Sum_Solution(int n) {
Temp::Reset();
Temp *a = new Temp[n];
delete []a;
a = nullptr;
return Temp::GetSum();
}
};
思路2
备忘。