C.無限小数

シングルポイント時間:1.0秒

メモリの制限:512メガバイト

小数では、我々は簡単に小数のビット数は有限または無限であるかを決定することができるが、このバイナリ小数の場合は、有限無限性質のような、変更される表現しました

小数  0.5  でバイナリ値、  0.1  ;
小数  0.75  のバイナリ値で  0.11  、
小数  0.6  、でバイナリ値  0.1001100 ......

あなたはそれがバイナリでの小数点以下の桁数が無限を示しているか否かを判断するために、小数点小数を与えます。

入力形式

端部への入力の複数のセット、プロセスファイル
小数点以下の6つのデータ入力の各セット  N- 0 N- < 1

出力フォーマット

バイナリでの小数点以下の桁数が有限である場合には、出力が「YES」、そうでない場合は「NO」。

サンプル

入力
0.500000 
0.600000 
0.750000
出力
YES 
NO 
YES 
アイデア:バイナリ小数点変換,,反復の特定の数は、プログラムを終了するときにマイナス1 ,,,, 2 1遭遇乗じ、無限小数を示します
書式#include <iostreamの> 
の#include <cstdioを>
 使用して 名前空間はstdを、
typedefの長い 長いLL。
INT メイン()
{ 
    ダブル一方、(CIN >> A)
    { 
        LL bの和 = 0 
        B = A * 10000000 
        B = (LL)B。
        一方、1 ){ 
            合計 ++ 
            B = B << 1 もし(B> = 10000000){
                B = B- 10000000 
            } 
            場合(== bは0 ||和> = 200 ){
                 破ります
            } 
        } 
        もし、(B == 0 ){ 
            COUT << " YES " << ENDL。
        } 
        他の裁判所未満<< " NO " << てendl; 
                
    } 
    戻り 0 
}

 




おすすめ

転載: www.cnblogs.com/Accepting/p/11285475.html