Codeforces 863A Quasi-palindrome

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/polanwind/article/details/78066535

题目链接: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;
}

猜你喜欢

转载自blog.csdn.net/polanwind/article/details/78066535