APG4bの練習問題の解答
問題文
つの正整数 , が与えられます。 , の平均値を とします。 の小数点以下を切り上げて得られる整数を出力してください。
APG4bに取り上げられているとおり、ifや切り上げ関数ceilを使わない解き方を書こうと思います。
#include <bits/stdc++.h>
using namespace std;
int main() {
int a;
int b;
cin>>a>>b;
cout<<(a+b+1)/2<<endl; //ある数の繰上げ=一つ大きい数の繰下げ
}
次の方が思い付きやすい人もいるかもしれません。
#include <bits/stdc++.h>
using namespace std;
int main() {
int a;
int b;
double x;
cin>>a>>b; x=(a+b)/2; //整数割る整数なので小数点以下切り捨ての整数がxに代入される。
int y=(a+b)%2; //(a+b)割る2の余りがyに代入される。y=0または1。
cout<<x+y <<endl;
}