728x90
반응형
안녕하세요.
이 카테고리의 게시글은 프로그래머의 뇌를 단련하는 수학퍼즐 책을 풀어볼 겁니다.
첫번째 문제부터 가보겠습니다.
앞뒤가 같아 거꾸로 읽어도 같은 수를 '대칭수' 또는 '거울수'라고 한다.
예를 들면 '123454321'과 같은 수를 의미한다.
문제
10진수, 2진수, 8진수 그 어느 것으로 표현하여도 대칭수가 되는 수 중,
10진수에서 10이상인 최솟값을 구해보시오.
예) 9 (10진수) = 1001(2진수) = 11(8진수)
※ 위의 예시는 10진수에서 10미만이므로 제외
package equalFtoB;
public class EqaulFtoB {
public static void main(String[] args) {
int init = 10;
String binStr, octStr, decStr;
String binRev, octRev, decRev;
do {
binRev = octRev = decRev = "";
binStr = Integer.toBinaryString(init);
octStr = Integer.toOctalString(init);
decStr = Integer.toString(init);
for (int i = binStr.length() - 1; i >= 0; i--) {
binRev += binStr.charAt(i);
}
for (int i = octStr.length() - 1; i >= 0; i--) {
octRev += octStr.charAt(i);
}
for (int i = decStr.length() - 1; i >= 0; i--) {
decRev += decStr.charAt(i);
}
init++;
if (binStr.equals(binRev) && octStr.equals(octRev) && decStr.equals(decRev))
break;
} while (true);
System.out.println("앞, 뒤가 동시에 똑같아지는 2진수, 8진수, 10진수의 값");
System.out.println("2진수 : " + binStr + ", 8진수 : " + octStr + ", 10진수 : " + decStr);
}
}
정답 :
10진수 : 585
2진수 : 1001001001
8진수 : 1111
728x90
반응형
'알고리즘 > 수학 퍼즐' 카테고리의 다른 글
[수학 퍼즐 / java] 06.콜라츠 추측 (0) | 2021.03.23 |
---|---|
[수학 퍼즐 / java] 05. 아직도 현금으로 계산하다니! (0) | 2021.03.23 |
[수학 퍼즐 / java] 04. 막대 자르기 (0) | 2021.03.23 |
[수학퍼즐 / java] 03.카드를 뒤집어라! (0) | 2021.03.23 |
댓글