66分求助!!
查看原帖
66分求助!!
1037981
封禁用户楼主2023/10/4 09:10
#include <bits/stdc++.h>
using namespace std;
int mp[1000050];
int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	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];
	}
}
2023/10/4 09:10
加载中...