본문 바로가기
프로그래밍/자바의정석_4_연습문제

[4-15] 다음은 회문수를 구하는 프로그램이다. 회문수(palindrome)란, 숫자를 거꾸로 읽어도 앞으로 읽는 것과 같은 수를 말한다.

by 므시칸곰틔군 2014. 12. 30.

package Ex4;


public class Ex4_15 {


// [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

// }

//

// [실행결과]

// 12321는 회문수 입니다.

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub


int number = 12321;

int tmp = number;


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


while (tmp != 0) {

/*

* (1) 알맞은 코드를 넣어 완성하시오 .

*/


result = result * 10 + tmp % 10; // 기존 결과에 10을 곱해서 더한다.

tmp /= 10;


System.out.println(result);

// System.out.println(tmp);

}


if (number == result) {

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

} else {

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

}

}


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

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

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

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

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

}