본문 바로가기

JAVA-BAEKJOON/1단계 입출력과 사칙연산

[백준/01-10] 2588 곱셈

NO. 2588

문제

 

 

풀이코드

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        
        Scanner scanner = new Scanner(System.in);
        
        int A = scanner.nextInt();
        int B = scanner.nextInt();
        
        scanner.close();
        
        // A * B의 1의자리 수 = A * (B%10)
        System.out.println(A * (B%10));
        // A * B의 10의자리 수 = A * (B%100/10)
        // ex. 385 일때 385%100=85 -> 85/10 = 8
        System.out.println(A * (B%100/10));
        // A * B의 100의자리 수 = A * (B/100)
        System.out.println(A * (B/100));
        System.out.println(A * B);
    }
}

 

 

📌 B는 문자열로 추출해서 연산 후 정수형으로 형변환해도 될 것 같다. 시도해보자.

 

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        
        Scanner scanner = new Scanner(System.in);
        
        int A = scanner.nextInt();
        String B = scanner.next();
        
        scanner.close();
        
        // charAt() : String으로 저장된 문자열 중에서 한 글자만 선택해서 char타입으로 변환
        System.out.println(A * (B.charAt(2) - '0'));
        // 아스키코드를 보면, 문자'3'은 10진수로 표현시 51
        // 문자'3'을 숫자3으로 바꾸려면 48을 빼줘야 함. (51-3=48)
        // 48 = 문자'0'
        System.out.println(A * (B.charAt(1) - '0'));
        System.out.println(A * (B.charAt(0) - '0'));
        System.out.println(A * Integer.parseInt(B));
    }
}