1+2+3+...+を計算する方法nの値
2442 ワード
関数配列の使用
再帰は使用できませんが、2つの関数の配列を使用して、nから0に従って基準関数を選択し、他の場合は下降関数を呼び出すことを選択できます.
コンストラクタの使用
コンストラクション関数は毎回加算され、newのn次元配列はn回、nに加算されます.
再帰は使用できませんが、2つの関数の配列を使用して、nから0に従って基準関数を選択し、他の場合は下降関数を呼び出すことを選択できます.
// ,
// , 0 , 0
typedef int (*fun) ( int); //
class Solution {
public:
static int Sum_Solution(int n) {
static fun f[]={teminator,Sum_Solution}; // , , 。
return n+f[!!n](n-1);
}
static int teminator(unsigned int n){
return 0;
}
};
コンストラクタの使用
コンストラクション関数は毎回加算され、newのn次元配列はn回、nに加算されます.
// ,new , ,
class A{
public:
A(){n++;sum=sum+n;}
static int n;
static int sum;
static reset(){n=0;sum=0;}
};
int A::n=0; // const static ,const static
int A::sum=0;
class Solution {
public:
int Sum_Solution(int fre) {
A::reset();
A* a=new A[fre];
int sum=A::sum;
delete [] a;
return sum;
}
};