3日目-K-することができますが、この方程式を解きますか?HDU2199

今、式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 
}
コードの表示

 

おすすめ

転載: www.cnblogs.com/GRedComeT/p/11244330.html
おすすめ