微軟,Google面試題 (8) —— 求1+2+...+n

題目:求1+2+…+n,要求不能使用乘除法、forwhileifelseswitchcase等關鍵字以及條件判斷語句(A?B:C)。

解法一:用遞歸,利用&&運算符的特性做。
解法二:用構造函數做。class內含有一個static變量,初始化爲1。一個全局變量sum初始化爲0。在構造函數內部首先sum += i;然後i++。構造一個大小爲n,類型類class的數組,調用構造函數n次。即可獲得sum。
解法三:在遞歸的思想上,利用c++的多態性來當做遞歸return的條件。還利用了連續兩次!!n,將n轉化成1。

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