zoukankan      html  css  js  c++  java
  • C. 无穷的小数

    单点时限: 1.0 sec

    内存限制: 512 MB

    在十进制下,我们能够很轻易地判断一个小数的位数是有穷的或无穷的,但是把这个小数用二进制表示出的情况下其有穷性和无穷性就会发生改变,比如

    十进制下的 0.5 ,在二进制下的值为 0.1 ;
    十进制下的 0.75 ,在二进制下的值为 0.11 ;
    十进制下的 0.6 ,在二进制下的值为 0.1001100......

    给你一个十进制的小数,判断其在二进制表示下小数位数是否无穷。

    输入格式

    多组输入,处理到文件结束
    每组数据输入一个六位的小数 n.(0n<1)

    输出格式

    如果在二进制下小数位数是有穷的,输出”YES”,否则输出”NO”.

    样例

    input
    0.500000
    0.600000
    0.750000
    
    output
    YES
    NO
    YES
    思路:二进制小数的转换,,乘2遇1减1,,,,当迭代到一定次数时 程序退出,说明无限小数
    #include<iostream>
    #include<cstdio>
    using namespace std;
    typedef long long ll;
    int main()
    {
        double a;
        while(cin>>a)
        {
            ll b,sum=0;
            b=a*10000000;
            b=(ll)b;
            while(1){
                sum++;
                b=b<<1;
                if(b>=10000000){
                    b=b-10000000;
                }
                if(b==0||sum>=200){
                    break;
                }
            }
            if(b==0){
                cout<<"YES"<<endl;
            }
            else cout<<"NO"<<endl;
                    
        }
        return 0;
    }



  • 相关阅读:
    MOS
    1- Bluetooth开发
    1- Bluetooth
    MCU 51-10 Infrared Communication
    1- STM32 HAL库学习 GPIO配置点亮LED灯
    MCU 51-9 DS18B20 Temperature Sensor
    MCU 51-8 AD/DA
    C语言讲义——变量(variable)
    C语言讲义——注释
    C语言讲义——“编译、链接”
  • 原文地址:https://www.cnblogs.com/Accepting/p/11285475.html
Copyright © 2011-2022 走看看