2013-02-26 47 views
-1

有人可以幫助我確定語句在最內循環中執行的次數嗎?準確確定程序中的執行次數

for(int i = 1; i <= n; i++) 
    for(int j = 1; j <= n; j++) 
     for(int k = j; k <= n; k++) 
      //statement 

我真的不知道如何處理這種形式的問題,我認爲這將是一個有益的鍛鍊,如果有人能夠勾勒出思維過程中的一個可能會通過解決這樣的問題。謝謝。

+0

http://en.wikipedia.org/wiki/Triangular_number – 2013-02-26 00:18:54

+0

與啓動一個循環,然後兩個,然後三個。尋找一個模式 – YXD 2013-02-26 00:19:40

+0

這是功課嗎? – 2013-02-26 00:20:34

回答

1

所以,第一個循環(使用i)迭代而i <= n是真實的 - 這意味着如果n >= 1,它會遍歷n倍。 j循環也是如此。到目前爲止,我們有n * n迭代。

第三k循環是有點棘手,因爲它開始於j,所以第一次,它將運行從1n,但下一次開始於2等,直到j == n,它只能運行一次。平均來說,這是n/2迭代。

因此,這使得總共迭代n * n * (n+1)/2

+0

這幾乎是正確的,正確的答案是在我的答案,這是n-1 – 2013-02-26 00:30:19

+0

@PeterWooster:不,它是(n + 1)... – 2013-02-26 00:31:55

+0

@oli這是正確的,它應該是n + 1,但它不是n,我更新了我的答案。 – 2013-02-26 00:35:26

0

答案是N * N *(N + 1)/ 2

爲什麼就留給讀者做練習