【Java】数値の切り上げ(A - Duplex Printing)
解いた問題
AtCoderの「A - Duplex Printing」
提出した回答
import java.util.Scanner; import static java.lang.Math.ceil; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); float N_float = sc.nextInt(); int NumOfSheets = (int) ceil(N_float / 2); System.out.println(NumOfSheets); } }
受け取った整数をキャストしてfloat型に変えて小数点以下の割り算ができるようにした。割り算の計算結果をMathクラスのceilを使って切り上げた。
ceilは
引数の値以上で、計算上の整数と等しい、最小の(負の無限大にもっとも近い)
double
値を返します。
という処理をしてくれる。
キャストをしない方法を見つけたい(if文で場合分けもしたくない)。
TODO
- 他のA問題を解く
追記
他の方の回答で勉強していたら
System.out.println((n / 2) + (n % 2));
と書かれている方がいて「すごい!」となった。
- 2で割った整数
- 2で割った余り(0か1)
これらを足せば良い、という方法。
今後はキャストを使用せずに、この方法を真似したい。
おわり。。