2013-10-18 41 views
0

我想表達這個僞代碼作爲函數返回的內容。將僞代碼表示爲函數n

function mystery(n) 
    r := 0 
    for i:= 1 to n-1 do 
     for j:= i+1 to n do 
      for k:= 1 to j do 
       r:= r+1 
    return r 

我認爲它可能是沿着f的東西線(N)= N *(N-1)^ 2 但我不認爲這是完全正確的。有人可以解釋一下,如果這是正確的,如果錯誤,那麼我應該如何去得到正確的答案。

+0

相關問題 - [三重嵌套循環的時間複雜度](http://cs.stackexchange.com/q/3306)。 – Dukeling

+0

展開並使用最高期限 – megawac

回答

1

計算在一個時間的功能的一種循環:

for k:= 1 to j do 
    r:= r+1 

調用此函數K(j)。這應該是非常明顯的,K(j) = j

現在我們出去一個循環:

for j:= i+1 to n do 
    r:=r+K(j) 

調用此函數J(i)。做更多的工作,你應該看到J(i) = (i+1) + (i+2) + ... + n。有一個這樣的總和的數學公式(我會留給你來確定這一點)。

如今終於,最後的循環:

for i:= 1 to n-1 do 
    r:=r+J(i) 

然後你做更多的工作在這裏,讓您的最終答案。