Symmetric number, 즉 Palindrome number(ex. 454, 6886, 1001)를 검사하는 함수 만들기
do ~ while 문을 사용해 볼 예정이다. (이점 : 최초 검사 True, as comfortable as while ~)
#include <stdio.h>
int main()
{
/*
입력받을 값, 초기화될 값들의 일의자리 수 저장 변수(remainder), number 임시저장 변수
거꾸로 뒤집은 값 저장 변수
*/
int number, rem, temp, reverse=0;
while(1)
{
printf("Enter the number : ");
scanf("%d", &number);
// 양수만 입력
if(number >=0)
{
break;
}
printf("Retry by entering positive number\n");
}
// number 대신 초기화에 사용할 임시변수 = number
temp = number;
do // test result is Absolutely 'True' at first repetition time
{
rem = temp % 10; // 일의자리 숫자 검출(remainder)
reverse = 10*reverse + rem; // 일의자리 -> 백의자리 and so on..
temp /= 10; // 일의자리 검출 후 그 값을 소거하는 모습(=몫 검출)
} while(temp !=0); // 최후 temp가 일의자리로 초기화된 후 /=10 -> 0 이면 false, break.
if(reverse == number)
// Compare original number with reversed value to know if it is Palindrome
{
printf("The number is palindrome");
}
else
printf("The number is not palindrome");
return 0;
}