Leetcode每日一题——“回文数”

各位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;
}

好啦,小雅兰今天的回文数就到这里啦,继续加油噢!!!

猜你喜欢

转载自blog.csdn.net/weixin_74957752/article/details/130252195