题目:求1+2+…+n,
要求不能使用乘除法、for、while、if、else、switch、case 等关键字以及条件判断语句。
思路:利用类初始化时会自动调用构造函数可以完成,还有几种方法,以后再说。
1 #include <iostream> 2 #include <cassert> 3 4 using namespace std; 5 6 class SUM 7 { 8 private: 9 static int N; 10 static int Sum; 11 12 public: 13 SUM() 14 { 15 ++N; 16 Sum += N; 17 } 18 19 static void Reset() 20 { 21 N = 0; 22 Sum = 0; 23 } 24 25 static int GetSum() 26 { 27 return Sum; 28 } 29 }; 30 31 int SUM::N = 0; 32 int SUM::Sum = 0; 33 34 int main(void) 35 { 36 37 SUM::Reset (); 38 39 SUM *a = new SUM[10]; 40 41 delete [] a; 42 43 a = NULL; 44 45 cout << SUM::GetSum () << endl; 46 47 return (0); 48 }
测试结果: