숫자를 입력받아 각 자릿수를 구해 배열에 삽입한 후 배열의 양 끝부분을 차례대로 체크해 동일하지 않다면 no, 끝까지 동일하다면 yes를 출력하면 되는 문제입니다.
#include <iostream>
int main()
{
int n;
std::cin >> n;
while (n != 0)
{
int len = 0; // 숫자 길이
int copy_n = n;
while (copy_n > 0)
{
copy_n /= 10;
len++;
}
int* nums = new int[len];
int nums_top = -1;
int first_ten = 10;
for (int i = 1; i < len; i++)
first_ten *= 10;
for (int i = 0; i < len; i++) // 자릿수 구하기
{
int temp = (n % first_ten / (first_ten / 10));
first_ten /= 10;
nums_top++;
nums[nums_top] = temp;
}
bool isTrue = true;
for (int i = 0; i < len / 2; i++)
{
if (nums[i] != nums[nums_top - i])
{
isTrue = false;
break;
}
}
if (isTrue)
std::cout << "yes\n";
else
std::cout << "no\n";
std::cin >> n;
}
return 0;
}