• Runtime Error:Floating point exception 不知道拿错了


    //#define LOCAL
    #include <cstdio>
    #include <cstring>
    #define rep(i,m,n)  for(int i=m;i<n;i++)
    using namespace std;
    const int M=1e5;
    int sh[1000],vis[1000],c;
    
    void ans(int m,int n)
    {
        c=0;
        while(!vis[m]&&m){
            vis[m]=1;
            m*=10;
            sh[c++]=m/n;
            m%=n;
        }
        if(!m)
            for(int i=0;i<c;i++)
                    printf(i==c-1?"%d
    ":"%d",sh[i]);
        else{
            for(int i=0;i<c;i++)
                printf(i==c-1?"%d
    ":"%d",sh[i]);
            printf("from %d to %d
    ",1,c);
        }
    }
    
    int main()
    {
        #ifdef LOCAL
            freopen("data.in","r",stdin);
            freopen("data.out","w",stdout);
        #endif // LOCAL
        int m,n;
        while(scanf("%d%d",&m,&n)){
            memset(sh,0,sizeof(sh));
            memset(vis,0,sizeof(vis));
            printf("%d/%d=%d.",m,n,0);
            ans(m,n);
        }
    }

    问题 E: 【高精度】高精度分数

    时间限制: 1 Sec  内存限制: 64 MB
    提交: 14  解决: 5
    [提交][状态][讨论版]

    题目描述

    “人 无远虑,必有近忧”是修罗王一直以来恪守的信条,为了以防万一,他在很久以前就将《魔法宝典》的全部信息编码为一个巨大无比的自然数,并在这个数前加一个 0和小数点,使它变成一个分数。然后他在戒指上刻了一个记号,使记号的两端长度比等于这个分数。这样,虽然他在入狱时手上只带了一个戒指,但只要测量出戒 指上记号的比值M/N,他就可以还原《魔法宝典》的全部信息。

    现在的问题是:已知分数M/N,试计算M/N(0<M<N<100)的值。如果M/N是无限循环小数,则计算并输出它的第一循环节,同时要求输出循环节的起止位置(小数位的序号)。

    输入

    只有一行,即M/N,其中0<M<N<100。

    输出

    输出M/N的值,如为无限循环小数,则输出第一循环节及起止位置。

    样例输入

    17/97
    

    样例输出

    17/97=0.175257731958762886597938144329896907216494845360824742268041237113402061855670103092783505154639
    from 1 to 96
    

    提示

    【输入样例2】

    1/2

    【输出样例2】

    1/2=0.5

  • 相关阅读:
    centos 6 安装
    DNS介绍
    Saltstack远程执行(四)
    Saltstack数据系统Grains和Pillar(三)
    array_multisort 二维数组排序
    jqgit...
    Redis 创建多个端口 链接redis端口
    百度商桥回话接口
    加ico
    redis 新开端口号
  • 原文地址:https://www.cnblogs.com/WDKER/p/5673782.html
Copyright © 2020-2023  润新知