求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)
解析:解决这道题的方法有好几种,这里只提供最好理解的这一种,通过构造对象,让静态变量进行累加,在构建完所有对象后返回静态变量的值,就是累加的和。
#include <iostream>
using namespace std;
class Sum
{
public:
Sum()
{
++count;
sum += count;
}
static void Reset(){ count = 0; sum = 0; }
static int GetSum(){ return sum; }
private:
static int count;
static int sum;
};
int Sum::count = 0;
int Sum::sum = 0;
int main()
{
Sum::Reset();
int N;
cin >> N;
Sum *pSum = new Sum[N];
cout << Sum::GetSum() << endl;
return 0;
}