若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。
给定一个整数X,判断它是否是回文数。
输入数据
一个整数X(1≤X≤10*1000)
输出数据
如果是回文数输出Y
,否则输出N
。
方法一:因为10*1000已经超出了整型数据的最大范围,所以用数组存储
#include<stdio.h>
#include<string.h>
int main()
{ int t = 0;
char str[2000];
fgets(str, 2000, stdin);
int len = strlen(str)-1;
for (int i = 0; i < len/2; i++)
{ if (str[i] == str[len-i-1]) t++; }
if (t == len / 2)
printf("Y");
else printf("N");
}
方法二
如果不考虑数据范围
#include<stdio.h>
int main()
{
long long int x, y, n=0;
scanf("%lld", &x);
y = x;
for (int i = 0;x %10 != 0;i++)
{
n = n * 10 + x % 10;
x /= 10;
}
if (n == y)
printf("Y");
else
printf("N");
printf("\n%lld %lld\n", n, y);
}