# 北軟102 problemA 總和面積表 ###### tags: `北軟102` ## 題目 總和面積表是將二維的資料累加起來,也就是說,總和面積表中的點(x, y)等於從原始二維資料中 的點(0, 0)到(x, y),這個矩形內所有資料的和。數學式子表示如下: ![](https://i.imgur.com/gzG9EL9.png) (公式一) 其中,S 是總和面積,D 是二維資料。上面公式,在實際應用時,不常使用,因為執行慢。比較快的式子 如下: ![](https://i.imgur.com/UrI8N5L.png) (公式二) 以圖 1 來說明,圖 1(a)和圖 1\(c\)是原始二維資料,圖 1(b)和圖 1(d)是利用上述公式,所得到的總合面積表。 ![](https://i.imgur.com/dTLddrB.png) 假如,我們利用公式(1)求圖 1(a)中,左上角具有 6 個資料之深色矩形,其結果為5+2+3+1+5+4=20,需要做 6 次運算,其結果等於圖 1(b)中總合面積表之第 2 列第 3 行之 20 資料,只要一次運算即可得到結果。 再以圖 1(c)來說,利用公式(1)求圖中深色矩形之 6 個資料總和,其結果為 5+4+2+2+1+3=17,但是,若是利用圖 1(d)總合面積表來計算,其結果為 34-14-8+5=17,只要執行 4 次(一個+, 兩個-, 一個=)運算,此運算,可以下面公式來表示: ![](https://i.imgur.com/jZpmJV6.png) (公式三) 其中,$x_L$和 $y_T$是矩形左上角座標,$x_R$和 $y_B$ 是矩形右下角座標。 請你設計一程式,可以讀取和顯示 5x5 檔案資料,可以計算和顯示總和面積表,可以讓用者輸入矩形 左上角座標和右下角座標,然後可以利用公式(3),計算和顯示矩形內資料之總和,同時,也可以計算和 顯示矩形內資料之平均。 評分: 1. 可以讀取和顯示 5x5 檔案資料(5 分)。 2. 可以計算與顯示總和面積表(7.5 分)。 3. 可以讓用者輸入矩形左上角座標及輸入矩形右下角座標(2.5 分)。 4. 計算與顯示矩形內資料之總和(7.5 分)。 5. 計算與顯示矩形內資料之平均(2.5 分)。 範例: 下圖中,輸入資料為二維 5x5 的資料,輸出資料是利用公式(2),所得到之總合面積表。計 算矩形內資料之總和,是利用公式(3)。計算矩形內資料之平均,也是利用公式(3),再平均。 ![](https://i.imgur.com/t8pMjk6.png) ## 想法 這題給了公式,理論上我們只需要按照題目上的方式建表,開一個6x6的二維陣列table,初始化table[0,0~5]與table[0~5,0],接下來按照公式,針對於每一列的1~5一一的做運算。 建好表之後,依照題目上的敘述使用公式三算出矩形的總和,還有矩形內的平均,完成。