1 条题解
-
0
题解:基础除法
题意重述
题目给定两个整数 和 (),要求计算并输出 除以 向下取整的结果。
思路
本题主要考察基础的数学运算与取整逻辑处理。 在 C++ 语言中,整数除法运算符
/的默认规则是向零取整。当结果为正数时,向零取整与向下取整是一致的;但当真实结果为负小数时(例如 ),向零取整的结果是 ,而题目要求的向下取整应该为 。因此,我们需要分情况来处理:
- 首先计算出普通的整数除法结果
res = a / b和余数mod = a % b。 - 若
mod != 0且 与 符号相反(即异号),说明真实的商为负小数,此时应当将res减 。 - 否则,
res已经符合向下取整的要求,直接输出即可。
代码
#include <iostream> using namespace std; int main() { long long a, b; cin >> a >> b; long long res = a / b; long long mod = a % b; // 异号且有余数时需再减一 if (mod != 0 && ((a < 0) ^ (b < 0))) { res = res - 1; } cout << res << '\n'; return 0; } - 首先计算出普通的整数除法结果
- 1
信息
- ID
- 7
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- (无)
- 递交数
- 4
- 已通过
- 2
- 上传者