各位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; }
好啦,小雅兰今天的回文数就到这里啦,继续加油噢!!!