ldjhust

工欲善其事 必先利其器

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

题目:求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 }

测试结果:

posted on 2013-05-02 14:12  ldjhust  阅读(153)  评论(0编辑  收藏  举报