题目链接:CF-863A
给定一个数x,如果在x前加任意多的前导0(可以没有),可以变成一个回文数,则输出YES,否则NO。
把数字末尾的0去掉然后在判断剩余数字是否是回文数即可。如101000,把末尾3个0去掉变成101,是回文数,输出YES。
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int main() {
int a[10];
int x;
scanf("%d", &x);
int size = 0;
for (int i = 1;i <= 10;++i)
{
int mod = x % 10;
a[size++] = mod;
x /= 10;
if (x == 0)
break;
}
int cnt = 0;
for (int i = 0;i < size;++i)
{
if (a[i] != 0)
break;
if (a[i] == 0)
cnt++;
if (a[i + 1] != 0)
break;
}
int re = size - cnt;
bool flag = true;
int s = 0;
for (int i = cnt;i < size;++i)
{
if (a[i] != a[size - 1 - s])
flag = false;
s++;
}
if (flag)
printf("YES\n");
else
printf("NO\n");
// system("pause");
return 0;
}