2016-01-13 51 views
0
int fun (int n) 
{ 
    int x=1, k; 
    if (n==1) return x; 
    for (k=1; k<n; ++k) 
    x = x + fun(k) * fun(n – k); 
    return x; 
} 

解決方案中的遞推關係給出如下:瞭解遞推關係稱之爲內循環

enter image description here

解決這是很容易的,我得到的答案是51

疑問是爲什麼'1'(用紅色劃線)不在總和之內?

我明白,如果它是漸近分析,我們會認爲它是不變的時間,因爲我們只需要知道增長的性質,但因爲這裏我們需要一個準確的答案。

由於這條線x + fun(k) * fun(n – k)在循環內部,x也循環,所以爲什麼它在外部求和?

回答

0

大多數運行總和從0開始。然而,這個從1開始。這個常量值是你強調的那個值。它來自線

int x = 1,k;