不用循環, 判斷,三元運算法, 選擇求1 + 1 + ..100

用了兩種方法:


#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;
}

如果你想用第三種, 就想個數學公式吧

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章