728x90
문제
상근이는 이진수 곱셈에 어려움을 겪는 여자친구를 위한 프로그램을 만들려고 한다.
상근이의 여자친구는 항상 이진수에 17을 곱한다. 즉, 이진수 N이 입력으로 들어오면 17을 곱한 다음 이진수로 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 이진수 N이 주어진다. N은 최대 1000자리인 이진수이며, 0이 들어오는 경우는 없다.
출력
입력으로 주어진 N을 17배한 다음, 이진수로 출력한다.
풀이
값을 입력받을때 BigInteger를 이용하여 2진수로 변환하여 입력받아준다.
이진수 32자리까지는 Int, 64자리까지는 Long으로 이용가능 하지만 그 이상은 BigInteger를 사용해야 한다.
그 후 "17"을 이용하여 새로운 BigInteger값을 만들어주고 multiply를 이용하여 연산한다.
마지막으로 출력할 때 n.toString(2)를 이용하여 2진수로 출력해준다.
코드
import java.math.*;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
BigInteger n = new BigInteger(sc.nextLine(),2).multiply(new BigInteger("17"));
System.out.println(n.toString(2));
}
}
728x90
728x90
'Algorithm > Baekjoon' 카테고리의 다른 글
Baekjoon 14728 벼락치기 JAVA (1) | 2022.10.04 |
---|---|
Baekjoon 23881 알고리즘 수업 - 선택 정렬 1 JAVA (0) | 2022.09.28 |
Baekjoon 5347 LCM JAVA (0) | 2022.09.18 |
Baekjoon 21774 가희와 로그 파일 JAVA (0) | 2022.09.18 |
Baekjoon 19638 센티와 마법의 뿅망치 JAVA (0) | 2022.09.18 |
댓글