一、题目
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/palindrome-number
二、例子
输入:x = 121
输出:true
输入:x=123
输出:false
三、解析
采用了两边向中间比较,先用strlen函数确定字符串的长度,接着开始比较,每比较一次,左边加1,右边减一继续比较。当左边等于右边或左边小于右边的时候停止比较,一旦发现左右的数值不相等,那么立即将一个变量的值改变并且跳出循环。
最后来到了判断部分,如果上面提到的那个变量的值没有被改变,那么此数为回文数,如果被改变,那么此数不是回文数。
作者:TJR181
链接:https://leetcode-cn.com/problems/palindrome-number/solution/meng-xin-tong-guo-zheng-xing-zhuan-huan-c9qz8/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
在原作者基础上做了部分修改;
四、C语言代码
#include<stdio.h>
#include<string.h>
int main()
{
int x;
scanf("%d",&x);
{
int b,c,start=0,end,d=1;
char a[1000];
sprintf(a,"%d",x);
b=strlen(a);
end=b-1;
while(start<end)
{
if(a[start]==a[end])
{
start++;
end--;
}
else
{
d=0;
break;
}
}
if(d==1)
printf("true");
else
printf("false");
}
return 0;
}
在这里插入代码片