USACO:Fractions to Decimals

来源:互联网 发布:优化win10字体 编辑:程序博客网 时间:2024/04/29 04:45
/*ID: Jang LawrencePROG: fracdecLANG: C++*/#include<iostream>#include<cstring>#include<cstdio>#include<string>#include<algorithm>#include<queue>#include<cmath>#define X first#define Y second#define sqr(a) ((a)*(a))using namespace std;typedef long long lng;int x,y;string an;void f(int ini){    if(ini>=10) f(ini/10);    an+='0'+ini%10;}int  is[111111];vector<int > ans;int main(){  #ifndef  DEBUG  freopen("fracdec.in","r",stdin);  freopen("fracdec.out","w",stdout);  #endifscanf("%d%d",&x,&y);f(x/y);x=x%y;bool f=1;while(!is[x]){   is[x]=ans.size()+1;   ans.push_back((x*10)/y);   x=(x*10)%y;   if(x==0){is[x]=ans.size();f=0;break;}}an+='.';for(int i=0;i<is[x]-1;++i)an+=ans[i]+'0';if(f)an+='(';for(int i=is[x]-1;i<ans.size();++i)an+=ans[i]+'0';if(f)an+=')';for(int i=0,j=0;i<an.size();++i){    if(j==76)    {        puts("");        putchar(an[i]);        j=1;        continue;    }    else    {        putchar(an[i]);        j++;    }}if(an.size()%76==0) ;else puts("");    return 0;}