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

问题描述:ios

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

 

分析:函数

利用类的静态变量实现:spa

new一含有n个这种类的数组,那么该类的构造函数将会被调用n次。code

 

代码实现:orm

// 12.cc
#include <iostream>
using namespace std;

class Object {
public:
	Object() {
		++N;
		Sum += N;
	}
	static void reset() { N = 0; Sum = 0; }
	static int get_sum() { return Sum; }

private:
	static int N;
	static int Sum;
};

int Object::N = 0;
int Object::Sum = 0;

int sum(int n) {
	Object::reset();

	Object* a = new Object[n];

	delete []a;
	a = 0;

	return Object::get_sum();
}

int main() {
	int n = 10;
	cout << "The sum is: " << sum(n) << endl;
	return 0;
}
相关文章
相关标签/搜索