66分求助!!

P1530 [USACO2.4] 分数化小数 Fractions to Decimals

输出按照上面规则计算出的小数表达式。如果结果长度大于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


|