思路:
将后面一半的数进行逆置,然后判断是否前一半和后一半相等。
例如 val=abcdef,我们将后一半的数def 逆置为fed;然后判断后一半逆置的数fed和前一半的数abc是否相等,相等则为回文数。
以下为C语言代码实现
#include<stdio.h>
bool fun(int val)//奇数偶数通用
{
if (val% 10 == 0)
{
return false;
}
int tem = 0;
while (val > tem)//直到tem位数大于或等于val
{
tem = tem * 10 + val % 10;//每一次之前的数升一位然后加上逆置的数
val /= 10;
}
return tem == val || tem / 10 == val;//判断偶数或者奇数的情况
}
int main()
{
if (fun(1357531))
{
printf("是回文");
}
}
以下为测试结果: