#include <bits/stdc++.h>
using namespace std;
int a , b , dividend , divisor , r , d , decimalPoint , repetendPoint , ans[100000];
vector<int> re;
bool flag = true;
int len(int n)
{
if (n == 0) return 1;
else return log10(n) + 1;
}
int main()
{
cin >> a >> b;
int p = 0;
dividend = a;
divisor = b;
if (dividend >= b)
decimalPoint = 1;
while (flag)
{
p++;
if (dividend < divisor)
{
re.push_back(dividend);
if (decimalPoint == 0) decimalPoint = p;
dividend *= 10;
continue;
}
r = dividend % divisor;
d = dividend / divisor;
ans[p] = dividend / divisor;
if (r == 0) flag = false;
for (int i = 0 ; i < re.size() ; i++)
{
if (re[i] == r)
{
repetendPoint = i + 1;
flag = false;
}
}
if (flag) re.push_back(r);
dividend %= divisor;
dividend *= 10;
}
int enter = 0;
for (int i = 1 , j = len(ans[i]) ; i <= (repetendPoint == decimalPoint ? p : p - 1) ; i++ , j += len(ans[i]))
{
if (enter % 76 == 0 && enter > 0) cout << endl;
cout << ans[i];
if (i == decimalPoint)
{
cout << '.';
enter++;
}
if ((repetendPoint == decimalPoint ? i : j) == repetendPoint)
{
cout << '(';
enter++;
}
enter += len(ans[i]);
}
if (decimalPoint == p) cout << 0;
if (repetendPoint != 0) cout << ')';
return 0;
}
记录