• 【高精度】高精度分数


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

    时间限制: 1 Sec  内存限制: 64 MB
    提交: 92  解决: 31
    [提交] [状态] [讨论版] [命题人:]

    题目描述

    “人无远虑,必有近忧”是修罗王一直以来恪守的信条,为了以防万一,他在很久以前就将《魔法宝典》的全部信息编码为一个巨大无比的自然数,并在这个数前加一个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


    #include <iostream>
    #include <string>
    #include <cstdio>
    #include <cmath>
    #include <cstring>
    #include <algorithm>
    #include <vector>
    #include <queue>
    #include <deque>
    #include <map>
    #define range(i,a,b) for(int i=a;i<=b;++i)
    #define LL long long
    #define rerange(i,a,b) for(int i=a;i>=b;--i)
    #define fill(arr,tmp) memset(arr,tmp,sizeof(arr))
    using namespace std;
    int n,m,num[105],dev[105];
    void init(){
    
    }
    void solve(){
        char t;
        while(cin>>m>>t>>n){
            fill(num,0);fill(dev,0);
            cout<<m<<t<<n<<"=0.";
            num[m]=1;int k=-1;
            bool flag=true;
            range(i,1,104){
                m*=10;
                dev[i]=m/n;
                m%=n;
                if(num[m]){
                    k=i+1;
                    flag=false;
                    break;
                }
                num[m]=i+1;
                if(num[0]){
                    k=i+1;
                    break;
                }
            }
            range(i,1,k-1)cout<<dev[i];
            cout<<endl;
            if(!flag)cout<<"from "<<num[m]<<" to "<<k-1<<endl;
        }
    }
    int main() {
        init();
        solve();
        return 0;
    }
    View Code
  • 相关阅读:
    Zepto源码分析-动画(fx fx_method)模块
    CSS3用法理解
    移动端网页meta设置和响应式
    javascript基础-正则表达式
    net core 2.x
    angular
    .net core 2.x
    .net core 2.x
    DDD
    DDD
  • 原文地址:https://www.cnblogs.com/Rhythm-/p/9348893.html
Copyright © 2020-2023  润新知