用了兩種方法:
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
class te
{
public:
static int cnt;
static int sum;
te()
{
cnt++;
sum += cnt;
}
int static getSum()
{
return sum;
}
};
int te::cnt = 0;
int te::sum = 0;
void solve1(int n)
{
te t[100];
printf("%d\n", te::getSum());
}
//上面是第一種利用靜態變量求和
//下面是利用函數指針, sum作和, zero作爲終止條件
typedef int(*pf)(int);
pf f[2] ;
int zero(int n)
{
return 0;
}
int sum(int n)
{
return n + f[!!n](n - 1);
}
void solve2(int n)
{
f[0] = zero;
f[1] = sum;
printf("%d\n",sum(n));
}
int main()
{
solve1(100);
solve2(100);
return 0;
}
如果你想用第三種, 就想個數學公式吧