IT会社100題-12-1+2+...+nを求めます
720 ワード
問題の説明:
1+2+…+nを求めて、乗除法、for、while、if、else、switch、caseなどのキーワードと条件判断文(A?B:C)を使うことができないことを要求します.
分析:
クラスの静的変数を使用して実装:
newはn個のこの種類の配列を含むと、クラスの構造関数がn回呼び出される.
コード実装:
1+2+…+nを求めて、乗除法、for、while、if、else、switch、caseなどのキーワードと条件判断文(A?B:C)を使うことができないことを要求します.
分析:
クラスの静的変数を使用して実装:
newはn個のこの種類の配列を含むと、クラスの構造関数がn回呼び出される.
コード実装:
// 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;
}