1 条题解

  • 0
    @ 2000-11-19 13:31:43

    练10.3 计算浮点数相除的余

    解题思路

    使用 fmod 计算浮点余数;若结果为负则加 b,使余数落入 [0,b)。

    正确性说明

    浮点取余满足 a=kb+r,对正除数的负余数加 b 相当于商减一,仍满足等式并得到非负余数。

    易错点

    % 只能作用整数,浮点数用 fmod;按定义除数为正。

    复杂度

    本题输入规模固定,时间 O(1),额外空间 O(1)。

    参考代码(C++11)

    #include <bits/stdc++.h>
    using namespace std;
    
    int main() {
        ios::sync_with_stdio(false);
        cin.tie(nullptr);
        double a, b;
        cin >> a >> b;
        double r = fmod(a, b);
        if (r < 0)
            r += b;
        cout << r << "\n";
        return 0;
    }
    
    • 1

    信息

    ID
    543
    时间
    1000ms
    内存
    128MiB
    难度
    待重评
    标签
    递交数
    1
    已通过
    1
    上传者