33分求助
查看原帖
33分求助
349581
qytqytqy楼主2020/9/26 01:11

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;
}
2020/9/26 01:11
加载中...