ETH官方钱包

切換
舊版
前往
大廳
主題

ZeroJudge - b056: 1. 影像像素轉換問題 解題心得

Not In My Back Yard | 2018-11-17 13:43:26 | 巴幣 0 | 人氣 147

題目連結:


題目大意:
給定正整數 N ( 0 < N ≦ 256 ),代表接下來有 N 列,每列有 N 組數字,每組數字有三個數字 R 、 G 、 B 。

對於每組 R 、 G 、 B ,將其按照下列的公式求出 X 、 Y 、 Z ,並把每組的 Y 加總求平均。(小數部分請輸出到小數點第四位,以下四捨五入)
X= 0.5149 * R + 0.3244 * G + 0.1607 * B
Y= 0.2654 * R + 0.6704 * G + 0.0642 * B
Z= 0.0248 * R + 0.1248 * G + 0.8504 * B



範例輸入:
2
255 3 192 254 16 171
224 51 167 160 34 8



範例輸出:
163.1271 82.0146 169.9752
163.4547 89.1162 153.7144
158.7189 104.3614 153.9368
94.6992 65.7712 15.0144
The average of Y is 85.3159



解題思維:
照題目所給的公式算出相應的 X 、 Y 、 Z ,並輸出。然後把 Y 加進一個變數裡(此變數一開始為0)。

最後 N ^ 2 組數字都處理完後,再把存有了每個 Y 值的變數除以 N ^ 2 ,即是 Y 值的平均。把平均的結果按照格式輸出即可。

至於輸出到小數第四位的話(對 C++ 、 C 來說),可以使用 scanf("%.4f"…… 或是 cout << fixed << setprecision(4) ……。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作