JOO's note

회문수(palindrome) 본문

Back-End/알고리즘

회문수(palindrome)

pli3452 2015. 1. 8. 15:39

[4-15] 다음은 회문수를 구하는 프로그램이다. 회문수(palindrome)란, 숫자를 거꾸로 읽

어도 앞으로 읽는 것과 같은 수를 말한다. 예를 들면 ‘12321’이나 ‘13531’같은 수를 말한

다. (1)에 알맞은 코드를 넣어서 프로그램을 완성하시오.

[Hint] 나머지 연산자를 이용하시오.

[연습문제]/ch4/Exercise4_15.java

class Exercise4_15

{

public static void main(String[] args)

{

int number = 12321;

int tmp = number;

int result =0; // 변수 number를 거꾸로 변환해서 담을 변수

while(tmp !=0) {


// (1) 로직작성


}

if(number == result)

System.out.println( number + "는 회문수 입니다.");

else

System.out.println( number + "는 회문수가 아닙니다.");

} // main

}
























[정답]

result = result*10 + tmp % 10;

tmp /= 10;


[해설] 숫자를 역순으로 바꾼 후 원래의 숫자와 비교해서 같으면 회문수이.예를 들어

원래의 숫자(number)의 값이 12345라면, 역순으로 바꾸면 54321이 될 것이다. 어떻게 하

면 12345를 54321로 바꿀 수 있을까? 각 자리수의 값을 더하는 문제4-10과 같은 방식, 10

으로 나눠가면서 10으로 나머지 연산을 하는 방식으로 각 자리수를 얻을 수 있다. 다만

그냥 더하는 게 아니라 10을 곱해가면서 더하면 숫자를 역순으로 바꿀 수 있다.

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 -

'Back-End > 알고리즘' 카테고리의 다른 글

로또번호 생성  (0) 2015.01.09
2차원배열  (0) 2015.01.08
문자열이 숫자인지 판별  (0) 2015.01.08
피보나치수열  (0) 2015.01.08
문자열이 아닌 숫자에서 각자리의 숫자 뽑아오기  (0) 2015.01.08
Comments