各位CSDN的uu们,你们好呀,今天小雅兰又来刷力扣啦,今天的题目是回文数,下面,让我们进入回文数的世界吧
示例 1:
输入:x = 121
输出:true
示例 2:
输入:x = -121
输出:false
解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入:x = 10
输出:false
解释:从右向左读, 为 01 。因此它不是一个回文数。
解法一:循环
采用循环的方式,首先,把所有需要的变量都定义为长整型,因为定义为整型,后续有些数据整型可能存放不下。
再就是,根据示例可知:回文数不可能是负数
然后可知:需要得到一个数的每一位,这可以用到/10和%10的方法
下面,我们来看看代码:
bool isPalindrome(int x)
{
long int a=x;
long int b=0;
long int res=0;
//定义一个a用来接受最初x的值(因为x的值经过循环体会改变)
if(x<0)
{
//回文数不可能是负数
return false;
}
while(x>0)
{
b=x%10;//得到数的每一位
x=x/10;//去掉数的最后一位
res=res*10+b;
//res用来计算最终值,定义为长整型(测试数据可能太大,int存放不下)
}
if(res==a)
//if判断语句判断res和a是否相等
{
return true;
}
return false;
}
好啦,小雅兰今天的回文数就到这里啦,继续加油噢!!!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)