文章

【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

GESP各级别考纲、真题讲解、知识拓展和练习清单等详见【置顶】【GESP】C++ 认证学习资源汇总

luogu-”系列题目已加入洛谷Java、C++初学团队作业清单,可在线评测,团队名额有限。

bcqm-”系列题目可在编程启蒙题库进行在线评测。

欢迎加入Java、C++、Python技术交流QQ群(982860385),大佬免费带队,有问必答

欢迎加入C++ GESP/CSP认证学习QQ频道,考试资源总结汇总

欢迎加入C++ GESP/CSP学习交流QQ群(688906745),考试认证学员交流,互帮互助

GESP/CSP 认证学习微信公众号
GESP/CSP 认证学习微信公众号
本文由作者按照 CC BY 4.0 进行授权