C 用遞迴求前n項階乘的和

2021-08-20 14:39:23 字數 766 閱讀 5647

求前n項階乘的和。

#includeusing namespace std;

//求某項階乘的值 5!=1*2*3*4*5

int fun(int i)

//求前n項階乘的和 s(x)=f(1)+f(2)+...f(x)

int fun2(int i)

/*//求前n項階乘的和 s(x)=f(1)+f(2)+...f(x)

int fun2(int i)

*/int fun3(int i)

int main()

分析思路:

當fun(5); 傳的乙個值為 5 .

fun(5) = fun(5-1) + 5 = fun(4) + 5;

fun(4) = fun(4-1) + 4 = fun(3) + 4;

fun(3) = fun(3-1) + 3 = fun(2) + 3;

fun(2) = fun(2-1) + 2 = fun(1) + 2;

fun(1) = return 1;

可以這樣寫:

fun(5) = fun(4) + 5;

= (fun(3) + 4) + 5;

= ((fun(2) + 3) + 4) + 5;

= (((((return 1) 1 + 2) + 3) + 4) + 5);

遞迴完後才return fun(5) = 15;

得到公式: f(i) = f(i-1) + i;

求前N項和

再做以前的題目,發現解法其實好多種,雖然萬變不離其宗,可是收穫還是好多。時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 張彤彧 浙江大學 本題要求編寫程式,計算序列 2 1 3 2 5 3 8 5 的前n項之和。注意該序列從第2項起,每...

遞迴 求N!的階乘

用遞迴演算法,求n!的精確值 n以一般整數輸入,n 100 輸入乙個整數n 輸出n!1010 3628800顯然100資料規模的階乘是無法用longlong存下的,所以我選擇用陣列來模擬大數乘法,具體 實現是從社團學姐那裡學到的,這裡附上我的理解 include include include in...

C語言 遞迴求n的階乘

例30 c語言求n!要求用遞迴實現。解題思路 本題和例29思想差不多,都是用遞迴來實現,讀者可以回顧一下 c語言遞迴求年齡 求階乘函式 int factorial int number 自定義階乘函式 else if number 0 number 1 0或者1本身的階乘是1 else return...