码迷,mamicode.com
首页 > 其他好文 > 详细

【高精度】高精度分数

时间:2018-07-22 11:18:22      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:状态   void   计算   长度   分数   long   center   序号   flag   

问题 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

 

【高精度】高精度分数

标签:状态   void   计算   长度   分数   long   center   序号   flag   

原文地址:https://www.cnblogs.com/Rhythm-/p/9348893.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!