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;
}
相關文章
相關標籤/搜索