方法一:递归,O(n)的复杂度(利用运算符短路模拟if)
int Sum_Solution(int n)
{
int a = 1;
n > 1 && (a = n + Sum_Solution(n - 1));
return a;
}
int main()
{
cout << Sum_Solution(100);
system("pause");
return 0;
}
方法二:利用静态成员变量,调用构造函数,O(1)的复杂度(复杂度不考虑调用构造函数)
class test
{
public:
static int s_m_tmp;
static int s_m_sum;
test()
{
s_m_tmp++;
s_m_sum += s_m_tmp;
}
};
int test::s_m_tmp = 0;
int test::s_m_sum = 0;
int main()
{
test *t = new test[100];
cout << test::s_m_sum;
delete[] t;
system("pause");
return 0;
}