理解したいこと
自分の書いたコードの中でi<25という条件式が出てくるのですが、なぜ25未満の数だとうまくいかないのかを理解したいです。
前提
「競技プログラミングの鉄則」という本を使って学習していて、B12の問題を解いていました。i < 10000などと大きな値をとってACしたのですが、i < xのxの部分をコードが機能する最小の値にしたいと考えいじっていたら、x >= 25で機能することが分かりました。しかし、なぜx >= 25で機能するのか分からなかったので、質問したいと考えました。
以下B12の問題です。
問題文---
正の整数 N が与えられます。
x^3+x=N を満たす正の実数
x を出力してください。ただし、相対誤差または絶対誤差が 0.001 以下であれば正解とします。
制約
1≤N≤100000
N は整数
入力
入力は以下の形式で標準入力から与えられます。
N
--
該当のソースコード
C++
1#include <bits/stdc++.h>2using namespace std;3 4double N, m;5int main() {6 cin >> N;7 double L = 0, R = 100;8 for (int i = 0; i < 25; i++) {9 m = (L + R) / 2;10 if (N < (m * m * m + m)) R = m;11 else L = m;12 }13 cout << m << endl;14}15
環境
環境は以下のものを使用しています。
https://atcoder.jp/contests/tessoku-book/custom_test
0 コメント