Algorithm/Java

[알고리즘_Java] 백준 2588번 곱셈

Cune 2021. 12. 18. 17:30



1. 첫번째 방법 

(1)의 427는 변수 A로 한번에 받고

(2)의  385는 백의자리수 3을 B1, 십의자리수 8을 B2, 일의자리수 5를 B3로 나눠받았다.

>>결과는 '런타임에러 (NoSuchElement)'로 떴다... 코드 길이가 너무 길었던 것인가 다시 도전했다...!

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		int A = sc.nextInt();	//세자리수 한번에 
		
		int B1 = sc.nextInt(); //백의자리수
		int B2 = sc.nextInt();	//십의자리수
		int B3 = sc.nextInt();	//일의자리수
		
		sc.close();
		
		int C1 = A*B3;
		int C2 = A*B2;
		int C3 = A*B1;
		
		System.out.println(C1);
		System.out.println(C2);
		System.out.println(C3);
		System.out.println(A*(B1*100+B2*10+B3));
	}

}

 

 

2. 두번째 방법 

(1)과 (2)모두 세자리수를 한번에 받고 '/' 몫과 '%'  나머지를 활용하는 방법을 선택했다.

>>드디어 성공...! 몫과 나머지를 적절히 활용하는게 아직은 어려워서 알고리즘 공부를통해서 익혀야겠다.

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		int A = sc.nextInt();	//472---(1)
		int B = sc.nextInt();	//385---(2)
		
		sc.close();
		
        	int C1 = A*(B%10);	//(385%10)은 5로 일의자릿수 (3)
       		int C2 = A*((B/10)%10);	//(385/10)의 몫은 38, 38%10은 8로 십의자릿수 (4)
		int C3 = A*(B/100);	//(385/100)은 3으로 백의자릿수 (5)
	
		System.out.println(C3);	//---(3)
		System.out.println(C2);	//---(4)
		System.out.println(C1);	//---(5)
		System.out.println(A*B);//---(6)
	}

}