반응형
[문제링크]
https://www.acmicpc.net/problem/2588
[문제]
(세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다.
(1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오.
[입력]
첫째 줄에 (1)의 위치에 들어갈 세 자리 자연수가, 둘째 줄에 (2)의 위치에 들어갈 세자리 자연수가 주어진다.
[출력]
첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.
[예제 입력 1]
472
385
[예제 출력 1]
2360
3776
1416
181720
[설명]
이 문제는 수학 문제이다.
곱셈을 기본적으로 하는 방법은 숫자 first와 second가 있을때, first와 second의 일의자리수를 곱하면 (3)번이 나온다. first와 second의 십의자리수를 곱하면 (4)번이 나온다. first와 second의 백의자리수를 곱하면 (5)번이 나온다. 그 수를 다 합하면 (6)번이 나온다.
일의자리수는 second%10을 하여 구하고, second/10을 해주어 일의자리수를 제거해준다.
십의자리수도 second%10을 하여 구하고, second/10을 해주어 십의자리수를 제거해준다.
백의자리수는 second/10을 했을 때 0이 나오기 때문에 second에서 곱해주면 백의자리수가 나오게된다.
백준 알고리즘 2588번 JAVA풀이
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scann = new Scanner(System.in);
int first=scann.nextInt();
int second=scann.nextInt();
int answer=0;
int idx=0;
while(true){
if(second/10==0) {
System.out.println(first*second);
answer+=first*(second%10)*Math.pow(10, idx++);
break;
}
System.out.println(first*(second%10));
answer+=first*(second%10)*Math.pow(10, idx++);
second/=10;
}
System.out.println(answer);
}
}
궁금하신 부분이나 부족한 점은 댓글로 알려주시면 감사하겠습니다.
반응형
'알고리즘 > 수학' 카테고리의 다른 글
BJ_B4_5596_시험 점수 - Java (0) | 2022.01.29 |
---|---|
BJ_S5_1094_막대기 - Java (0) | 2022.01.21 |
댓글