알고리즘/기초
회문수(palindrome) 구하기
leegeonwoo
2023. 8. 6. 22:56
회문수란, 숫자를 거꾸로 읽어도 앞으로 읽는 것과 같은 수를 말한다.
자바의 메서드를 이용하지않고 연산자만 이용하여 입력값이 회문수인지 아닌지 판별하는 프로그램이다.
public class Main {
public static void main(String[] args) {
int number = 12321;
int tmp = number;
int result = 0;
while(tmp !=0) {
result = result * 10 + tmp % 10;
tmp /= 10;
}
if(number == result) {
System.out.println(number + "는 회문수 입니다.");
}else {
System.out.println(number + "는 회문수가 아닙니다.");
}
}
}
숫자를 역순으로 바꾼뒤에 if문의 조건식을 통해 판별할 수 있다.
숫자를 역순으로 바꾸기 위해서는 10으로 나눠가며 10으로 나머지 연산을 하며 각 자릿수를 10을 곱해가며 더하면 역순을 구할 수 있다.
실행결과
12321는 회문수 입니다.
* 이해를 돕기 위해 '12345' 의 역순을 구하는 과정이다. *
result | result * 10 | tmp | tmp % 10 |
0 | 0 | 12345 | 5 |
5 | 50 | 1234 | 4 |
54 | 540 | 123 | 3 |
543 | 5430 | 12 | 2 |
5432 | 54320 | 1 | 1 |
54321 | - | 0 | - |
728x90