一个典型的编程挑战是确定一个数字是否以另一个数字结尾。为了解决这个问题,你必须识别给定数字的最后几位,并检查它们是否与另一个数字匹配。许多应用程序,包括数据处理、字符串操作和数值分析,经常涉及这种操作。编程方法包括将数字转换为字符串、模运算和逻辑运算符的使用,用于解决这个挑战。对于想要在操作数字和解决算法问题方面变得更好的初学者和中级程序员来说,这个主题应该是有兴趣的。
方法
有多种方法可以检查一个数字是否以另一个数字结尾。以下是两种常见的方法 -
-
使用取模运算符(%)
-
使用字符串转换
方法1:使用取模运算符(%)
如果两个数字被分割,取模运算符返回余数。利用取模运算符,以第二个数字作为除数,我们可以确定一个数字是否以另一个数字结尾。如果结果等于第二个数字,则第一个数字以第二个数字结尾。
常用的数学运算符称为取模运算符,它返回除法运算的余数,并用符号%表示。使用取模运算符来验证一个数是否以另一个数结尾是一种有用的应用。
我们可以使用模运算符来获取一个数"n"除以另一个数"m"后的剩余值,以确定这两个数是否连续。如果余数等于m,则n以m结尾。如果不等于m,则不是。
语法
这个方法的语法如下 −
-
检查一个数字是否以另一个数字结尾的函数
bool endsWith(int number, int ending) {
int digits = floor(log10(ending)) + 1;
登录后复制
-
获取结束数字的位数
int divisor = pow(10, digits);
登录后复制
-
计算除数
int remainder = number % divisor;
登录后复制
-
计算余数
return remainder == ending; }
登录后复制
-
如果余数等于结束数字,则返回true
在这里,number 是原始数字,ending 是要检查是否在 number 的末尾的数字。表达式 floor(log10(ending)) + 1 计算了 ending 的位数,而 pow(10, digits) 计算了除数。然后使用取模运算符 % 计算了 number 除以 divisor 的余数。如果余数等于 ending,则函数返回 true,表示 number 以 ending 结尾。
算法
模运算符在以下的C++过程中被使用来确定一个整数是否以另一个数字结尾 −
步骤 1 - 输入 num 和 end Num,这两个要进行比较的数字。
第二步 - 使用模运算符(%)计算num除以10的余数部分。
步骤 3 − 如果数字以结束数字结尾,并且余数等于结束数字,则返回 true。
步骤4 - 如果不是,则将数字除以10,并重复步骤1-2,直到数字等于0。
第5步 - 如果循环在没有匹配的情况下结束,数字不以end Num结尾,因此返回false。
示例 1
使用取模运算符检查一个数字是否以另一个数字结尾的示例 −
在这个示例中,endsWith函数接受两个整数参数number和ending。然后使用取模运算符%来确定数字的最后一位是否等于ending。如果是,则函数返回true,否则返回false。
在调用endsWith方法之前,我们首先在主函数中定义了number和ending。如果该方法返回true,我们打印一条消息,说明该数字以ending结尾。如果不是,则打印一条消息,说明该数字不以ending结尾。
需要注意的是,这只是一个非常简单的例子,有许多不同的方法(如字符串操作方法)可以确定一个数字是否以另一个数字结尾。取模运算符是一种受欢迎且有效的技术。
#include
using namespace std;
bool endsWith(int number, int ending) {
return (number % 10) == ending; // Check if last digit is equal to ending
}
int main() {
int number = 12345;
int ending = 5;
if (endsWith(number, ending)) {
cout