题目描述
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例 1:
输入: 121
输出: true
示例 2:
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/palindrome-number
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
白话题目:
回文数的问题,前面的题中对于反转数字的应该还记得吧,不记得的话翻翻前面的博客啊,或者直接看代码理解喽。
算法:
负数直接down掉,正数就反过来后判断是否相等
根据官方说法定义的函数用了bool的返回值,小伙伴们是不是一惊,C语言支持bool吗?
(1)引用头文件<stdbool.h>
(2)直接自己定义如下红红的红红,解决。
#define bool int
#define false 0
#define true 1
C语言完全代码
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
bool isPalindrome(int x){
if(x<0)
return false;
long y=0;
int temp=x;
while(temp!=0){
y=y*10+temp%10;
temp/=10;
}
if(y==x)
return true;
return false;
}
int main()
{
int x;
scanf("%d",&x);
bool test= isPalindrome(x);
printf("%d",test);
return 0;
}