题目
解决代码及点评
/* 求 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的累加 Base *p = new Base[N]; // 将结果打印出来 cout<<Base::gets_sum()<<endl; delete[] p; p = NULL; system("pause"); return 0; }
代码下载及其运行
解压密码:c.itcast.cn
下载代码并解压后,用VC2013打开interview.sln,并设置对应的启动项目后,点击运行即可,具体步骤如下:
1)设置启动项目:右键点击解决方案,在弹出菜单中选择“设置启动项目”
2)在下拉框中选择相应项目,项目名和博客编号一致
3)点击“本地Windows调试器”运行
程序运行结果