문제

수 124를 뒤집으면 421이 되고 이 두 수를 합하면 545가 된다. 124와 같이 원래 수와 뒤집은 수를 합한 수가 좌우 대칭이 되는지 테스트 하는 프로그램을 작성하시오.

입력

입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄에 하나의 정수 N(10 ≤ N ≤ 100000)이 주어진다.

출력

각 테스트 케이스에 대해서 원래 수와 뒤집은 수를 합한 수가 좌우 대칭이 되면 YES를 아니면 NO를 한 줄에 하나씩 출력한다.

예제 입력 1

4
13
58
120
5056

예제 출력 1

YES
NO
YES
NO

더보기

Solution

#include<stdio.h>
#include<stdbool.h>
#include<string.h>

int main(void)
{
	int T;

	scanf("%d", &T);

	for(int t=0;t<T;t++)
	{
		bool palindrome=true;
		int N1, N2=0, temp;
		char str[10]={'\0', };

		scanf("%d", &N1);
		temp=N1;

		while(temp>0)
		{
			N2*=10;
			N2+=temp%10;
			temp/=10;
		}

		N1+=N2;
		sprintf(str,"%d",N1);

		for(int i=0;i<strlen(str)/2;i++)
			if(str[i]!=str[strlen(str)-1-i])
			{
				palindrome=false;
				break;
			}

		printf("%s\n", palindrome?"YES":"NO");
	}

	return 0;
}
728x90

+ Recent posts