文章

【GESP】C++二级练习BCQM3051,浮点数余数

我理解为GESP二级知识点:数据类型转换-隐式数据类型转换题目。

BCQM3051

题目要求

描述

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

输入

输入仅一行,包括两个双精度浮点数a和b。

输出

输出也仅一行,a÷b的余数。

输入样例

73.263 0.9973

输出样例

0.4601


题目分析

根据题目定义的浮点数余数计算规则,只需要根据输入先求出“商”k,然后相减即可得到余数r。这里,k只需要用a/b,然后取整即可,这就是隐式的数据类型转换,浮点数取整。

代码参考

1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std;
int main() {
    double a, b;
    cin >> a >> b;
    int ans;
    ans = a / b;
    double r;
    r = a - ans * b;
    cout << r;
    return 0;
}

所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code

本文由作者按照 CC BY 4.0 进行授权