- 思路
- 题目要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句A?B:C,说明不能采用常规方法进行累加求和;
- 充分利用C++特性,构造对象时构造函数会自动调用的特点,让求和在构造函数中进行完成;
- 由于所有对象要针对相同的和进行更新,所以其成员定义为static。
class Sum{ public: Sum(){ _sum += _i; ++_i; } 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 arr[n]; return Sum::GetSum(); } };