알고리즘/수학

BJ_B4_2588_곱셈

naksnaks 2022. 1. 25.
반응형

[문제링크]

https://www.acmicpc.net/problem/2588

 

2588번: 곱셈

첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.

www.acmicpc.net


[문제]

(세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다.

(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

댓글

💲 추천 글