金典題目

題目一:不使用 if、while、goto、for、*、/、*=、/= 語句,實現對 1+2+3+...+n 的求和?(要求使用C++語言)

方法1:(算法原則:使用&&運算符的一個爲假,另一個不進行判斷的原則)

#include <iostream>
using namespace std;

int sum(int n)
{
	int num = 0;
	int b = n && ( num =  n + sum(n-1));
	return num;
}

int main(void)
{
	int num ;
	cin >> num;
	while(0 != num)
	{
		cout << "sum(" << num << ") = " << sum(num) << endl;
		cin >> num;
	}
	
	return 0;
}

方法2:(算法原則:通過new可以動態創建類對象和類靜態變量歸類所有的原則)

#include <iostream>
using namespace std;

int g_sum = 0;

class A
{
public:
	A() {	g_sum += (++sum);	}
public:
	static int sum;
};
int A::sum = 0;

int main(void)
{
	A *p = NULL;
	int num ;
	cin >> num;
	while(0 != num)
	{
		p = new A[num];
		if(NULL == p)	return 0;

		cout << "sum(" << num << ") = " << g_sum << endl;

		delete []p;
		p = NULL;

		cin >> num;
	}
	
	return 0;
}


發佈了31 篇原創文章 · 獲贊 16 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章