首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

算法題:三層嵌套循環執行次數推導 1+(1+2)+...+(1+2+...+n)

     編輯:程式設計綜合問答

代碼片段:

for(i=1; i<=n; i++) {
    for(j=1; j<=i; j++) {
        for(k=1; k<=j; k++) {
            @ x += delta;
        }
    }
}

逐層推導

  1. 最內層 k 循環:固定 i,j 時執行 j 次。
  2. 中層 j 循環:固定 i 時,j 從 1 到 i,執行次數累加:1 + 2 + ... + i。
  3. 外層 i 循環:i 從 1 到 n,總次數 = Σ(i=1..n) [Σ(j=1..i) j]。

數學公式

內層和 S(i) = i(i+1)/2。
總和 T(n) = Σ(i=1..n) i(i+1)/2 = n(n+1)(n+2)/6。

具體數值驗證

n手算總次數公式結果
111
21 + (1+2) = 44
31 + 3 + 6 = 1010
41 + 3 + 6 + 10 = 2020

時間複雜度

O(n³),常用於三維動態規劃、矩陣乘法優化分析。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved