微软100题(12) 求1+2+3+...+n,不用减乘除

来源:互联网 发布:豆瓣高分网络武侠小说 编辑:程序博客网 时间:2024/06/06 01:04

题目:

求1+2+…+n, 要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。


思路:不能用基本的数学,那么想,怎么能达到n呢,如何重复执行n次,联想到一个类对象构造时候调用构造函数,那么一个长度为n的类对象数组,构造时候,构造函数就要执行n次。

class Element{public:Element(){++N; sum +=N;}static int Getsum(){return sum;}static void Init(){N=0;sum=0;}private:static int N;static int sum;};int Element::N = 0;int Element::sum = 0;int SumN(int n){Element::Init();Element* p = new Element[n];delete []p;p = NULL;return Element::Getsum();}


0 0
原创粉丝点击