반응형
감정이입
예제 입출력
입력 | 출력 |
1010 11 |
11110 |
1000 100 |
100000 |
코드
입력에는 두 이진수가 들어오고 두 이진수의 길이는 1 이상 30 이하의 자연수가 들어온다.
해당 범위는 int의 범위와 long 범위를 벗어났기에 BigInteger로 구현하였다.
BigInteger a = scanner.nextBigInteger(2);
2진표현을 포함한 바이트 배열을 BigInteger로 받기 위해 매개변수로 2를 넘겼다.
BigInteger multiply = a.multiply(b);
multiply() 메소드는 BigInteger의 곱셈의 메소드이다. a와 b의 곱을 multiply 변수에 저장하였다.
String answer = multiply.toString(2);
toString() 메소드에 매개변수 2를 넘겨 두 자연수의 곱을 이진수로 변환하였다.
→ 입력한 수를 이진수로 받지 않으면 두 자연수의 곱의 값을 이진수로 변환하여 엉뚱한 수가 나온다.
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 2진표현을 포함한 바이트 배열을 BigInteger로 받기 위해 매개변수로 2를 넘겼다.
BigInteger a = scanner.nextBigInteger(2);
BigInteger b = scanner.nextBigInteger(2);
// multiply() 메소드는 BigInteger의 곱셈의 메소드
BigInteger multiply = a.multiply(b);
// toString() 메소드에 매개변수 2를 넘겨 두 자연수의 곱을 이진수로 변환
String answer = multiply.toString(2);
System.out.println(answer);
}
}
반응형
'코딩 테스트 > [JAVA] 백준' 카테고리의 다른 글
[JAVA] 백준 1373번 2진수 8진수 (0) | 2022.03.15 |
---|---|
[JAVA] 백준 8674번 Tabliczka (0) | 2022.03.10 |
[JAVA] 백준 5893번 17배 (0) | 2022.03.10 |
[2884] 알람 시계 / 백준 baekjoon 2884번 알람 시계 | C++ (0) | 2021.05.06 |
[2588] 곱셈 / 백준 baekjoon 2588번 곱셈 | C++ (0) | 2021.05.04 |
댓글