CH2-2高精度分数化小数

题目:给出三个整数 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);
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容