「切り上げ処理」を要求する問題!
問題概要
2 つの正の整数 が与えられる。
の平均値を求め、小数点以下を切り上げて得られる整数値を答えよ。
解法
- が偶数ならば、平均値は整数であって、答えは
(a + b) / 2
となる - が奇数ならば、平均値は整数とはならず、切り上げられるので、答えは
(a + b) / 2 + 1
となる
なお、 が奇数の場合の式がピンとこない方は、次の記事を参照。
#include <bits/stdc++.h> using namespace std; int main() { int a, b; cin >> a >> b; int sum = a + b; if (sum % 2 == 0) cout << sum / 2 << endl; else cout << sum / 2 + 1 << endl; }