top1编程
← 返回题目
题解

判断能否整除

1 条题解

  • 0
    @ 2026-8-4 2:01:46

    解题思路

    输入两个整数 a 和 b,判断 a 能不能被 b 整除,也就是 a 除以 b 有没有余数。

    判断整除的工具是取余运算符 %:a % b 得到 a 除以 b 的余数。

    • 如果 a % b == 0,说明余数是 0,a 能被 b 整除,输出 YES;
    • 如果 a % b != 0,说明有余数,不能整除,输出 NO。

    例如样例 a=12、b=6:12 % 6 = 0,整除,输出 YES。

    为什么"余数是 0"就等于"整除"?因为整除的定义就是"除完没有余数"。比如 12 ÷ 6 = 2 正好除尽;而 10 ÷ 3 = 3 余 1,10 就不能被 3 整除。

    可以再试几个:8 % 4 = 0,8 能被 4 整除;9 % 4 = 1,9 不能被 4 整除。只要余数不是 0,就一律输出 NO。

    题目保证 b 在 1 到 1000 之间,所以不用担心除数是 0 的问题(除数不能是 0,否则没有意义)。把 b 读进变量后直接用就行。

    这道题是取余运算 % 最经典的应用。以后判断奇偶(n % 2)、判断倍数(n % 某个数)都要用到它,一定要记牢:% 看余数,/ 看商,两个符号不要弄混。

    参考代码

    #include <iostream>
    using namespace std;
    
    int main() {
        int a, b;   // 判断 a 能不能被 b 整除
        cin >> a >> b;
    
        if (a % b == 0) {   // a 除以 b 余数为 0,说明整除
            cout << "YES" << endl;
        } else {            // 有余数,不能整除
            cout << "NO" << endl;
        }
        return 0;
    }
    

    复杂度分析

    只读入 2 个数,做一次取余和一次比较,运算次数固定。时间复杂度和空间复杂度都是 O(1)。

    • 1