题目:给出三个整数 a b c, c为精度, 计算a/b, 精度可达1000。a, b <= 10^6
分析: 因为精度很高, 直接适用整数计算会导致溢出。所以选用字符串结构进行存储。计算的时候再进行转换。
// 分数化小数
// 高精度分数化小数
// 给出三个整数 a b c, c为精度, 计算a/b
char r[1024];
int solution4() {
int a, b, c;
while (scanf("%d%d%d", &a, &b, &c) &&a&&b&&c) {
// 模拟除法
int n = a % b;
int m = a / b;
for (int i = 0; i <= c; i++) {
r[i] = n * 10 / b + '0';
n = n * 10 % b;
}
r[c + 1] = '\0';
int last = r[c] - '0';
if (last % 10 > 5) r[c - 1] = r[c - 1] + 1;
r[c] = '\0';
printf("%d.%s", m, r);
}
}