输出按照上面规则计算出的小数表达式。如果结果长度大于76每行输出 76 个字符。
by zhoujunchen @ 2023-10-04 09:55:48
对不起,发错代码了。
是这个:
```c
#include <bits/stdc++.h>
using namespace std;
int mp[1000050];
int main() {
int n, d;
cin >> n >> d;
if (__gcd(n, d) != 1) {
int div = __gcd(n, d);
n /= div;
d /= div;
}
memset(mp, 0, sizeof(mp));
int itg = n / d, dcm = n % d, cnt = 0, rcy = -1;
vector<int> dec;
while (dcm) {
cnt++;
dcm *= 10;
if (mp[dcm] == 0)
mp[dcm] = cnt;
else {
rcy = mp[dcm];
break;
}
dec.push_back(dcm / d);
dcm %= d;
}
if (dec.size() == 0) {
cout << itg;
cout << ".0";
} else {
cout << itg;
cout << ".";
for (int i = 0; i < dec.size(); i++) {
if (rcy == i + 1) {
cout << "(";
cout << dec[i];
} else cout << dec[i];
}
if (rcy != -1) cout << ")";
}
string s;
cout << s;
for (int i = 0; i < s.size(); i++) {
cout << s[i];
if ((i + 1) % 76 == 0)
cout << endl;
}
}
```
by lij123 @ 2023-10-04 11:47:51
@[zhoujunchen](/user/991587)
by lij123 @ 2023-10-04 11:48:23