题解
判断能否整除
1 条题解
-
0
解题思路
输入两个整数 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