Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
Tags
- 백준 1934 최소공배수
- 백준 10998 자바
- boj 1934
- 백준 2588 자바
- 백준 9498 자바
- 백준 1330 두 수 비교하기
- 백준 사칙연산
- 1934 java
- 백준 10430 나머지
- 백준 1008
- 백준 1001 A-B
- 백준 2753 자바
- 백준 1934 자바
- 백준 10998
- 백준 10998 A*B
- 백준 2753 윤년
- 백준 9498 시험 성적
- 백준 1001 자바
- 백준 1934
- boj 2753
- 백준 10869 사칙연산
- 백준 10430
- 백준
- 2753 자바
- 백준 1330 자바
- 백준 1008 A/B
- 백준 1008 자바
- 백준 10430 자바
- 1934 자바
- 백준 2588 곱셈
Archives
- Today
- Total
컴퓨터 하는 라따뚜이
[백준] 2588 자바_곱셈 본문
문제.
(세 자리 수) * (세 자리 수)가 입력되었을 때 각 단계별로 값을 구해 출력하는 문제다.
풀이.
다른 방법으로도 풀 수 있지만 이 문제는 '사칙연산' 단계에 분류되어있기 때문에 '사칙연산'만을 사용해 풀 수 있도록 하자. 그리고 아마 이렇게 푸는것이 가장 이상적인 답이지 않을까 생각한다.
정수 A, 정수 B가 입력되었다 가정했을 때 출력 값은 다음과 같다.
(3) 번의 값 = A * B의 일의 자릿 수
(4) 번의 값 = A * B의 십의 자릿 수
(5) 번의 값 = A * B의 백의 자릿 수
(6) 번의 값 = A * B
그럼 어떻게 정수 B의 자릿 수를 구할 수 있을까?
매우 간단하다.
B % 10
- 일의 자릿 수는 B를 10으로 %(mod) 해주면 된다.
B / 10 % 10
- 십의 자릿 수는 B를 10으로 나눈(/) 값을 다시 10으로 %(mod) 해주면 된다.
B / 100 % 10
- 백의 자릿 수는 B를 100으로 나눈(/) 값을 다시 10으로 %(mod) 해주면 된다.
문제에서 (세 자리 수) * (세 자리 수) 라고 정해주었기 때문에 이와 같이 간단하게 구현할 수 있다.
코드.
import java.util.Scanner; // Scanner클래스 임포트
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int A = input.nextInt(); // A 값 입력
int B = input.nextInt(); // B 값 입력
System.out.println(A * (B % 10)); // A * B의 일의 자릿수
System.out.println(A * ((B / 10) % 10)); // A * B의 십의 자릿수
System.out.println(A * ((B / 100) % 10)); // A * B의 백의 자릿수
System.out.println(A * B); // A * B
}
}
난이도 : ◐○○○○○○○○○
지극히 주관적으로 측정
'백준 문제풀이 > 01_입출력과 사칙연산' 카테고리의 다른 글
[백준] 10430 자바_나머지 (0) | 2021.04.04 |
---|---|
[백준] 10869 자바_사칙연산 (0) | 2021.04.03 |
[백준] 1008 자바_A/B (0) | 2021.04.03 |
[백준] 10998 자바_A*B (0) | 2021.04.03 |
[백준] 1001 자바_A-B (0) | 2021.04.03 |