题解:洛谷 B2026 计算浮点数相除的余

【题目来源】

洛谷:B2026 计算浮点数相除的余 - 洛谷 (luogu.com.cn)

【题目描述】

计算两个双精度浮点数 \(a\)\(b\) 的相除的余数,\(a\)\(b\) 都是双精度浮点数。这里余数(\(r\))的定义是:\(a=k \times b+r\),其中 \(k\) 是整数,\(0 \le r<b\)

【输入】

输入仅一行,包括两个双精度浮点数 \(a\)\(b\)

【输出】

输出也仅一行,\(a/b\) 的余数。

选手输出与标准答案的绝对误差或相对误差不超过 \(10^{-5}\) 即视为正确。

【输入样例】

73.263 0.9973

【输出样例】

0.4601

【代码详解】

#include <bits/stdc++.h>
using namespace std;

int main()
{
    double a, b;  // 定义两个双精度浮点数变量
  
    cin >> a >> b;  // 读入a和b
  
    // 计算a除以b的整数部分,然后用a减去整数部分乘以b
    // 相当于计算浮点数的取余运算
    // 或者使用a - floor(a/b) * b
    cout << a - int(a / b) * b;
  
    return 0;
}

【运行结果】

73.263 0.9973
0.4601000000000113
posted @ 2026-02-28 19:59  团爸讲算法  阅读(0)  评论(0)    收藏  举报