1 条题解

  • 0
    @ 2026-9-16 20:37:57

    题解:基础除法

    题意重述

    题目给定两个整数 AABBB0B \neq 0),要求计算并输出 AA 除以 BB 向下取整的结果。

    思路

    本题主要考察基础的数学运算与取整逻辑处理。 在 C++ 语言中,整数除法运算符 / 的默认规则是向零取整。当结果为正数时,向零取整与向下取整是一致的;但当真实结果为负小数时(例如 10/3=3.33-10 / 3 = -3.33\dots),向零取整的结果是 3-3,而题目要求的向下取整应该为 4-4

    因此,我们需要分情况来处理:

    1. 首先计算出普通的整数除法结果 res = a / b 和余数 mod = a % b
    2. mod != 0AABB 符号相反(即异号),说明真实的商为负小数,此时应当将 res11
    3. 否则,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
    上传者