回答編集履歴
1
誤字修正
answer
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
以下
|
1
|
+
以下を直せば動きました。
|
2
2
|
- ansとnumはlong longにする。(intだと2^31-1が上限なので、計算中にオーバフローしている)
|
3
3
|
- if(ans > 1e18/num)に直す。(他の方の丁寧な回答を参照してください)
|
4
4
|
- 1e18を1000000000000000000に直す。
|
5
|
-
これは自分の予想が含まれるのですが1e18はdouble型になるため、
|
5
|
+
これは自分の予想が含まれるのですが1e18はdouble型になるため、1e18/numもdouble型になっている。double型の有効桁数が10進数で15桁程度なので、1e18/999999000001の計算結果が1000000.999999999998999999ではなく1000001.00000に丸められてしまう。その結果-1のルートに入らない。)
|