不用迴圈求1+2+3...+n之和的多種求法
方法一:遞迴求解
int sum(int n) //用遞迴求解
方法二:模板
通過模板的特化和遞迴實現
template struct a
;template<>
struct a<1>
;int main()
注意:類成員變數value必須是ststic靜態的!否則無法記錄數字之和。
方法三:建構函式
原理:在c++中可以new出乙個陣列,大小為n,可以通過呼叫n次建構函式,然後在建構函式裡通過靜態資料成員來記錄n個數之和的大小。
class consum //用建構函式實現
static int getsum()
private:
static int n; //用靜態資料儲存才可達到累加效果
static int sum;
};int consum::n = 0; //初始化靜態成員
int consum::sum = 0;
int sum_soltion(int n)
int main(){
cout<
刷演算法 求1 2 3 n
求1 2 3 n,要求不能使用乘除法 for while if else switch case等關鍵字及條件判斷語句 a?b c 題目要求不能使用乘除法 for while if else switch case等關鍵字及條件判斷語句,那麼首先就要思考怎麼才能使n一次次的相加且到0的時候結束。首先...
演算法練習篇之 求1 2 3 n
求1 2 3 n,要求不能使用乘除法 for while if else switch case等關鍵字及條件判斷語句 a?b c 累加不能用迴圈的話,那就試試遞迴吧。判斷遞迴的終止條件不能用 if 和 switch,那就用短路與代替。n 0 sum sum solution n 1 0只有滿足n ...
劍指offer 遞迴 求1 2 3 n
題目描述 求1 2 3 n,要求不能使用乘除法 for while if else switch case等關鍵字及條件判斷語句 a?b c 思路 使用遞迴f n f n 1 n,但是不能使用if進行遞迴出口的控制,因此利用python中and的屬性,即and判斷都為真的話輸出and後面的那個數字。...