import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String N = br.readLine();
int answer = 0;
StringBuilder sb = new StringBuilder();
for(int i = N.length()- 1; i >= 0; i--) {
int number = N.charAt(N.length()- 1 - i) - '0'; // 0을 빼주어야 숫자로 변환할 수 있다.
int expr = (int)Math.pow(8, i) * number;
answer += expr;
}
while(answer != 0) {
sb.append(answer % 2);
answer /= 2;
}
System.out.println(sb.reverse());
}
}
결과는 잘 나오는데 틀렸다고 한다.
1373번 문제와 마찬가지로 toString()과 BigInteger로 해결이 가능할 것 같다.
다시 가보자.
import java.math.BigInteger;
import java.io.*;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String N = br.readLine();
BigInteger octNumber = new BigInteger(N, 8);
String binaryString = octNumber.toString(2);
System.out.println(binaryString);
}
}
이렇게 하면 맞는다.
참고로 N.toString(2)를 하면 에러가 발생한다.