[BOJ] 2588 곱셈 (JAVA)

joyful·2021년 4월 6일
0

Algorithm

목록 보기
11/65

✅ 문제

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

(1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오.

✅ 입력

첫째 줄에 (1)의 위치에 들어갈 세 자리 자연수가, 둘째 줄에 (2)의 위치에 들어갈 세자리 자연수가 주어진다.

✅ 출력

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

✅ 예제 1

▼ 입력

472
385

▼ 출력

2360
3776
1416
181720

풀이

  • Scanner 이용하여 숫자 입력 받기
  • 더 이상 나눌수 없을 때까지 숫자를 10으로 나눠 각 자리의 숫자 추출
import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		
    		int n1 = scanner.nextInt();
    		int n2 = scanner.nextInt();
            
    		int balance;	// 몫
        	int result;	// 각 자리수의 곱셈 결과
    		int sum = 0;	// 곱셈값의 합
    		int cnt=1;	// 각 자리의 위치 표시(일의 자리, 백의 자리, ...)
    	
    		while(n2>0) {	// 더 이상 나눌 수 없을 때까지
    			balance = n2%10;	// 자리수 추출(나머지)
    			result = n1*balance;	// 각 자리수의 곱셈
    			System.out.println(result);
    			sum += (result*cnt);	// (곱셈값*단위)
    			cnt *= 10;	// 단위 증가(일의 자리 → 백의 자리 → ...)
    			n2 /= 10;	// 다음 자리수 계산 위한 몫 구하기
    		}
    	
    		System.out.println(sum);
	}
}

📚 참고 자료 - [JAVA] 산술 연산자 정리

profile
기쁘게 코딩하고 싶은 백엔드 개발자

0개의 댓글