개발일기
[JAVA] 앞뒤가 같은 10진수 만들기
삐삐들의 주인
2023. 1. 26. 22:34
문제:
10진수 2진수 8진수의 대칭수가 되는 수 중 10이상 최솟값을 구하여라
StringBuffer로 10진수, 2진수, 8진수의 reverse를 구해서 equals로 비교를 하였다
package AlQuiz;
public class Quiz01 {
public static void main(String[] args) {
int num = 11;
while (true) {
//2진수
StringBuffer sBuf = new StringBuffer();
String numBinary = Integer.toBinaryString(num);
StringBuffer bBack = sBuf.append(numBinary).reverse();
String nbnb = bBack.toString();
//8진수
StringBuffer sBuf2 = new StringBuffer();
String numOct = Integer.toOctalString(num);
StringBuffer octBack = sBuf2.append(numOct).reverse();
String obob = octBack.toString();
//10진수
StringBuffer sBuf3 = new StringBuffer();
String numString = Integer.toString(num);
StringBuffer numBack = sBuf3.append(numString).reverse();
String realnumB = numBack.toString();
//2진수와 2진수reverse, 이게 true이면 true를 리턴
if ((numBinary.equals(nbnb)) && (numOct.equals(obob)) && (numString.equals(realnumB))) {
System.out.println("correct:" + num);
break;
} else {
//짝수는 끝이 0이 되는데 그러면 앞이 0이 되야 하는데 그것은 힘들어서
num+= 2;
}
}
}
}
StringBuffer를 3개 선언한 것은 append()를 썻더니 위에서 append()한 값이 그대로 붙어서 연장 되고 연장되어서 각각 따로 버퍼를 만들어줬다