今、式8 * X ^ 4 + 7 * X ^ 3 + 2 * X ^ 2 + 3 * X + 6 == Y、あなたが0と100の間に、その解決策を見つけることができ、所与。
今、あなたの幸運を試してみてください。
今、あなたの幸運を試してみてください。
入力のInputThe最初の行は、テストケースの数を意味する整数T(1 <= T <= 100)を含みます。次いで、Tラインは、次の各ラインは実数Y(ファブ(Y)を<= 1E10)を有し; OutputFor各テストケース、あなたべき方程式の解であるだけ出力1つの実数値(正確最大4小数点)、 、または「いいえ解決しない!」、0と100.Sample入力間の方程式の解がない場合
2 100 -4
サンプル出力
1.6152 !解決策
思考:バイナリ検索回答質問、以下のように、直接見ることができ、精度を設定した後:
ダブルY; ダブルチェック(ダブルX){ リターン 8 *(X * X * X * X)+ 7 *(X * X * X)+ 2 *(X * X)+ 3 * X + 6 。 } int型のmain(){ int型のT。 scanf関数(" %のD "、&T)。 一方、(T-- ){ ダブル L = 0.0、R = 100.0 、ミッド。 scanf関数(" %のLF "、&Y)。 もし(チェック(0.0)> Y || (チェック100.0)< Y){ のprintf(" !ノーソリューション\ nは" ); 続け; } 一方、(R - L> 1E- 10 ){ 半ば =(R + L)/ 2.0 。 もし(チェック(MID) - Y> 0 ) R = ミッド。 他 リットル = ミッド; } のprintf(" %.4lfする\ n " 、MID)。 } 戻り 0 。 }