題組內容
六、給定一陣列名稱為 NUM,包含 n 個不重複整數(n > 2),請撰寫虛擬程式碼找出該陣
列 中 元 素 兩 兩 乘 積 最 大 者(即 Maximum pairwise product, 變 數名 稱 為 maxprod,
maxprod = maximum (NUM[i] * NUM[j], i <> j) ),完成下列 2 項子題。
(一)請說明欲撰寫之虛擬程式碼的主要程式邏輯。(10 分)
詳解 (共 1 筆)
詳解
假設 NUM = [1, 20, 30, 4, 5]
- 初始化:max1 = -infinity,max2 = -infinity
- 第一次迭代:i = 0, NUM[0] = 1
- max1 = 1,max2 = -infinity
- 第二次迭代:i = 1, NUM[1] = 20
- max1 = 20,max2 = 1
- 第三次迭代:i = 2, NUM[2] = 30
- max1 = 30,max2 = 20
- 第四次迭代:i = 3, NUM[3] = 4
- 無變化,max1 = 30,max2 = 20
- 第五次迭代:i = 4, NUM[4] = 5
- 無變化,max1 = 30,max2 = 20
最終結果:maxprod = max1 * max2 = 30 * 20 = 600
這樣,maxprod 即為陣列 NUM 中兩兩元素乘積的最大值。