반응형
문제
(세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다.
(1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 (1)의 위치에 들어갈 세 자리 자연수가, 둘째 줄에 (2)의 위치에 들어갈 세자리 자연수가 주어진다.
출력
첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
int j = sc.nextInt();
System.out.println(i * (j % 10));
System.out.println(i * (j % 100 / 10));
System.out.println(i * (j / 100));
System.out.println(i * j);
}
}
scanner를 사용하여 각각 세자리 수를 입력받고 두 수를 곱한 값과 첫 번째 수에 두 번째 수를 한 자리씩 분리하여 곱한 결과를 구해야 한다.
두 번째 수를 하나씩 분리할 때는 연산자마다 우선순위에 주의하여 몫과 나머지 구하는 연산자 "/", "%"를 활용하면 쉽게 풀 수 있다. 위의 둘은 우선순위가 같으므로 2번째 출력문인
System.out.println(i * (j % 100 / 10));
에서 왼쪽부터 순서대로 구해지며 문제와 동일한 숫자를 입력했다는 가정하에 작성하면
(472 * (385 % 100 / 10))이 되고
385 % 100 = 85
85 / 10 = 8
이므로 472 * 8 이 된다.
이외의 방법으로는 두 번째로 입력받는 수를 문자열로 받은 후 int(정수) 형으로 형 변환(Casting)하여 첫 번째 수와 각각 곱셈을 해도 된다. 하지만 더욱 간결한 코드를 위해 위의 식으로!
'Study > 알고리즘' 카테고리의 다른 글
[백준 JAVA] 2단계 / 1330 / 두 수 비교하기 (0) | 2020.09.13 |
---|---|
[백준 JAVA] 1단계 / 10430 / 나머지 (0) | 2020.08.19 |
[백준 JAVA] 1단계 / 10869 / 사칙연산 (0) | 2020.08.19 |
[백준 JAVA] 1단계 / 10998 / A x B (0) | 2020.08.15 |
[백준 JAVA] 1단계 / 1001 / A - B (0) | 2020.08.15 |
댓글