首页 > 代码库 > IT公司100题-12-求1+2+…+n

IT公司100题-12-求1+2+…+n

问题描述:

求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。
 
分析:
利用类的静态变量实现:
new一含有n个这种类的数组,那么该类的构造函数将会被调用n次。
 
代码实现:
 1 // 12.cc 2 #include <iostream> 3 using namespace std; 4  5 class Object { 6 public: 7     Object() { 8         ++N; 9         Sum += N;10     }11     static void reset() { N = 0; Sum = 0; }12     static int get_sum() { return Sum; }13 14 private:15     static int N;16     static int Sum;17 };18 19 int Object::N = 0;20 int Object::Sum = 0;21 22 int sum(int n) {23     Object::reset();24 25     Object* a = new Object[n];26 27     delete []a;28     a = 0;29 30     return Object::get_sum();31 }32 33 int main() {34     int n = 10;35     cout << "The sum is: " << sum(n) << endl;36     return 0;37 }