
题目
解决代码及点评
/*
求 1+2+3+...+n
要求不能使用乘除法、for、while、if、else、switch、case 等关键字
以及条件判断语句(A?B:C)
解决思路:
通过全局变量(或者静态类变量)来记录累加的和,以及累加到的数字
通过构造函数来实现累加
*/
#include <iostream>
using namespace std;
#define N 100
/* 定义计算类Base */
class Base
{
public:
Base() // 调用一次构造函数,完成一次累加
{
n++;
nSum += n;
}
static int gets_sum() { return nSum; } // 获取和结果
private:
static int n; // 该静态变量记录当前累加的数值
static int nSum; // 该静态变量记录当前累加和
};
int Base::n = 0;
int Base::nSum = 0;
int main()
{
// 创建100个base对象,构造函数将被调用100次,完成1到100的累