題目連結:
題目大意:
給定正整數 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) ……。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。