RT,错在哪里了
#include<iomanip>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;
long long i,n,d,j,k,m,o,p,b[1000005],a[1000005];
long long topa=0;
bool f[100005]={false};
int main()
{
//freopen("fracdec.in","r",stdin);
//freopen("fracdec.out","w",stdout);
cin>>n>>d;
if(n%d==0) {cout<<n/d<<".0";return 0;}
else
{
cout<<n/d<<'.';
while(n)
{
if(n<d)n*=10;
else n%=d;
if(n<d)n*=10;
a[++topa]=n/d;
n%=d;
if(f[n]==1)
{
long long x=b[n];
for(j=1;j<=x;j++) cout<<a[j];
cout<<'(';
for(i=x+1;i<=topa;i++)
cout<<a[i];
cout<<')';
return 0;
}
f[n]=1;
b[n]=topa;
}
}
for(i=1;i<=topa;i++) cout<<a[i];
//fclose(stdin);
//fclose(stdout);
return 0;
}