#include <iostream>
#include <vector>
#include <stack>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <queue>
#include <cstring>
#include <unordered_map>
#include <unordered_set>
#include <algorithm>
#include <numeric>
#include <chrono>
#include <ctime>
#include <cmath>
#include <cctype>
#include <string>
#include <cstdio>
#include <iomanip>
#include <thread>
#include <mutex>
#include <condition_variable>
#include <functional>
#include <iterator>
using namespace std;
char out[4096];
int len = 0, cnt = 0, mmp[4096] = {0};
int main()
{
int a, b,t;
while (cin >> a >> b) {
len = cnt = 0;
memset(mmp, 0, sizeof(mmp));
//输出整数部分
cout << a << "/" << b << " = " << a / b << ".";
//记录小数
t = a % b;
//mmp 记录余数是否出现过 记录出现的位置
while (!mmp[t] && t) {
mmp[t] = ++cnt;
t *= 10;
out[len++] = t / b + '0';
t = t % b;
}
int i = 0, size = min(len, 50), index = t == 0 ? - 1 :mmp[t] - 1;
for (i = 0; i < size; ++i) {
//循环开始的地方
if (i == index) cout << "(";
cout << out[i];
}
if (t == 0) { cout << "(0)" << endl; cnt = 1; }
else {
if (i < len) cout << "...";
cout << ")" << endl;
cnt -= index;
}
cout << " " << cnt << " = " << "number of digits in repeating cycle" << endl <<endl;
}
return 0;
}
习题3-8(uva-202)
最新推荐文章于 2022-11-07 16:59:41 发布