不用迴圈求1 2 3 n之和的多種求法

2021-07-30 16:40:26 字數 729 閱讀 8171

不用迴圈求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後面的那個數字。...