回文数的简单快速判断
1 完成程序,验证回文 比如 输入 abcba 输出是回文
解题思路:
这里采用到一种快速判断回文数的方法,主要有两个公式需要自己尝试用个数去动手去算一算就明白了;
根据回文数本身的特点,得规律公式:
y = y * 10 + x % 10;
x /= 10;
源代码如下:
#include <stdio.h>
bool Fun(int x) //注意返回值是bool类型
{
if (x < 0 || (x % 10 == 0 && x != 0)) //如果是负数,或者个位数是0的都不是回文数,回文数要求是正整数
return false;
int y = 0;
while (x > y) //注意,这里不用取等于号.
{
y = y * 10 + x % 10;
x /= 10;
}
return x == y||x == y/10;
}
int main()
{
long int x;
bool xzq;
printf("请输入一个数: ");
scanf("%d",&x);
xzq=Fun(x);
if(xzq==true) printf("数字%d是回文数",x);
else printf("数字%d不是回文数!",x);
return 0;
}