//求1+2+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字
//及條件判斷語句(a?b:c)
//解法1:利用建構函式求解。關鍵是static的應用。
class temp
//可以用加法。。
static void reset()
static unsigned int getsum()
};unsigned int temp::n = 0; //在類中不能對static資料成員進行初始化,要初始化的話必須在類外進行定義!
unsigned int temp::sum = 0;
unsigned int mysum0(unsigned int n)
//解法2:利用虛函式求解
class a
};a* array[2];
class b : public a
};unsigned int mysum1(unsigned int n)
//解法3:利用函式指標求解,如果環境是純c,不能用虛函式類之類的,用函式指標。
typedef unsigned int (*fun) (unsigned int);
unsigned int mysum2_terminator(unsigned int n)
unsigned int mysum2(unsigned int n)
; return n + f[!!n](n - 1);
}//解法4:利用模板型別求解
template struct mysum3;};
template <> struct mysum3<1>;};
//mysum<100>::n就是1+2+...+100的結果,缺點:n不能動態輸入,且n值不能太大,即遞迴不能太深
#include "iostream"
using namespace std;
int main()
這道題真是太棒了。需要對很多概念很深刻的理解,然後還要靈活應用。
求1 2 n 很多限制條件
題目 求1 2 n,要求不能使用乘除法 for while if else switch case等關鍵字以及條件判斷語句 a?b c 分析 這道題沒有多少實際意義,因為在軟體開發中不會有這麼 的限制。但這道題卻能有效地考查發散思維能力,而發散思維能力能反映出對程式設計相關技術理解的深刻程度。通常求...
微軟100題 求1 2 n
題目 求1 2 n,要求不能使用乘除法 for while if else switch case等關鍵字以及條件判斷語句 a?b c package test 題目 求1 2 n,要求不能使用乘除法,for,while,if,else,switch,case,條件判斷語句 a?b c author...
求 1 2 n 有趣的短路原則
求1 2 n,要求 不能使用 乘除法 for while if else switch case等關鍵字及條件判斷語句 a?b c c 函式形式為int sumnums int n 本來是乙個很簡單的問題,但是加上不准使用這些語句的限制,瞬間就變得有些艱難。我們來思考,不能用迴圈,也不能用乘除,怎麼...