个人记录成长经历
(题目来自网络)M201709301124
A. Quasi-palindrome
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
Let quasi-palindromic numberbe such number that adding some leading zeros (possible none) to it produces apalindromic string.
String t is calleda palindrome, if it reads the same from left to right and from right to left.
For example,numbers 131 and 2010200 are quasi-palindromic,they can be transformed to strings "131" and"002010200", respectively, which are palindromes.
You are givensome integer number x. Check if it'sa quasi-palindromic number.
Input
The first linecontains one integer number x (1 ≤ x ≤ 109). This numberis given without any leading zeroes.
Output
Print "YES" ifnumber x is quasi-palindromic.Otherwise, print "NO" (without quotes).
Examples
input
131
output
YES
input
320
output
NO
input
2010200
output
YES
#include <stdio.h> #include <stdlib.h> #include <math.h> //A.Quasi-palindrome int main() { int num=0; int TF1=0; while(TF1==0) { scanf("%d",&num); if( num>=1 && num<=pow(10,9) ) {TF1=1;} else {printf("input err");} } int a[9];//权位 //因1<=num<=10^9,num至多10位 int l=-1, r=-1; // l r //a[i]: 0 1 5 3 4 5 0 0 // i : 7 6 5 4 3 2 1 0 for( int i=0; i<=9; i++)\ { a[i]=num%10; num=(num-a[i]) / 10; if(r==-1)if(a[i]!=0)r=i; } for( int i=9; i>=0; i--) { if(a[i]!=0) { l=i; break; } } int isthenum=1; for ( int i=0; i<=l-r; i++) { if(a[r+i]!=a[l-i]) { isthenum=0; break; } } if(isthenum==1) { printf("YES\n"); } else { printf("NO\n"); } return 0; }
A.Quasi-palindrome
最新推荐文章于 2018-09-08 17:12:44 发布