1 条题解
-
0
练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