CH2-2高精度分?jǐn)?shù)化小數(shù)

題目:給出三個整數(shù) a b c, c為精度, 計(jì)算a/b, 精度可達(dá)1000。a, b <= 10^6
分析: 因?yàn)榫群芨? 直接適用整數(shù)計(jì)算會導(dǎo)致溢出。所以選用字符串結(jié)構(gòu)進(jìn)行存儲。計(jì)算的時候再進(jìn)行轉(zhuǎn)換。

// 分?jǐn)?shù)化小數(shù)
// 高精度分?jǐn)?shù)化小數(shù)
// 給出三個整數(shù) a b c, c為精度, 計(jì)算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);
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容