BigIntはMathクラスが使えない
AtcoderのB – Between a and b … という問題を解くにあたって、JavaScriptのBigIntを使う必要があった。
四則演算は、Numberと同じように実行できるのだが、Mathクラスが使えないので、割り算をした結果を切り上げできなくて困った。
※ BigIntで割り算を行うと、デフォルトで切り捨てになる
divCeil関数
切り上げを整数のみで行うには、modした結果を2倍した値が割る数以上であるかを判定すればいいので、下記の divCeil関数を作って対処した。
'use strict' let a = BigInt(3) let b = BigInt(2) // 割り算の結果を切り上げする function divCeil (x, y) { if((x % y) * BigInt(2) >= y) { return x / y + BigInt(1) } return x / y } console.log(divCeil(a, b))
蛇足だが、競技プログラミングをJavaScriptでやるには障害が多く、かなりの縛りプレイを強要されるのであまりオススメしない。