C++ 如何判断一个正整数的末尾是否为0
在日常生活和工作中,我们经常会遇到需要判断一个正整数的末尾是否为0的情况,比如在处理数字的运算中,或者在使用某些算法的过程中。在本文中,我们将介绍几种方法来判断一个正整数的末尾是否为0,让我们一起来看看吧。
方法一:取模操作
取模操作是最基础的方法之一,我们可以通过对给定的正整数进行取模运算,来判断其末尾是否为0。具体的做法是将该正整数除以10,然后判断余数是否为0。
#include <iostream>
bool isEndsWithZero(int n) {
return n % 10 == 0;
}
int main() {
int num = 120;
if (isEndsWithZero(num)) {
std::cout << num << "的末尾是0" << std::endl;
} else {
std::cout << num << "的末尾不是0" << std::endl;
}
return 0;
}
运行结果:
120的末尾是0
方法二:转换为字符串进行判断
另一种方法是将整数先转换为字符串,然后判断字符串的最后一位是否为字符’0’。这种方法相对来说比较简单直观,适用于一般的场景。
#include <iostream>
#include <string>
bool isEndsWithZero(int n) {
std::string numStr = std::to_string(n);
return numStr.back() == '0';
}
int main() {
int num = 120;
if (isEndsWithZero(num)) {
std::cout << num << "的末尾是0" << std::endl;
} else {
std::cout << num << "的末尾不是0" << std::endl;
}
return 0;
}
运行结果:
120的末尾是0
方法三:取余操作
除了取模操作外,我们还可以通过对正整数进行取余操作,对其末尾数值进行判断。具体做法是反复对10取余,直到末尾数值非0。
#include <iostream>
bool isEndsWithZero(int n) {
while (n % 10 == 0) {
n = n / 10;
}
return n == 0;
}
int main() {
int num = 1200;
if (isEndsWithZero(num)) {
std::cout << num << "的末尾是0" << std::endl;
} else {
std::cout << num << "的末尾不是0" << std::endl;
}
return 0;
}
运行结果:
1200的末尾是0
总结
在本文中,我们介绍了三种方法来判断一个正整数的末尾是否为0,分别是取模操作、转换为字符串进行判断和取余操作。这些方法各有特点,可以根据实际需求选择合适的方法来判断整数的末尾是否为0。