public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//계산할 수 두개를 입력받음
int num1 = sc.nextInt();
int num2 = sc.nextInt();
//곱하는 수(num2)의 1의 자릿수를 구하여 c1에 저장
int c1 = (num2 % 100) % 10;
//3,4,5에 들어갈 숫자를 저장하는 배열 생성
int[] result = new int[3];
//(3)에 들어갈 num1과 num2의 일의 자릿수를 곱한 값을 저장
result[0] = num1 * c1;
//곱하는 수(num2)의 10의 자릿수를 구하여 c2에 저장
int c2 = (num2 % 100) / 10;
//(4)에 들어갈 num1과 num2의 십의 자릿수를 곱한 값을 저장
result[1] = num1 * c2;
//곱하는 수(num2)의 100의 자릿수를 구하여 c2에 저장
int c3 = num2 / 100;
//(5)에 들어갈 num1과 num2의 백의 자릿수를 곱한 값을 저장
result[2] = num1 * c3;
//r은 최종결과값을 저장할 변수
//x는 (3),(4),(5)의 각 자릿수를 더해서 최종값을 구할 때
//한칸씩 왼쪽으로 이동하여 더하기 때문에(즉, 10씩 곱해줘야 하므로)
//처음에는 1로 지정해둔 뒤 반복문이 진행될 때마다 10씩 곱해준다.
int r = 0;
int x = 1;
for (int i = 0; i < result.length; i++) {
System.out.println(result[i]);
r += result[i] * x;
x *= 10;
}
//최종 결과값 출력
System.out.println(r);
}
}
설명
위의 문제는 숫자 두 개를 사용자에게 입력받은 뒤 곱셈을 진행하는 절차를 풀이하는 문제이다.
숫자 두개를 num1과 num2로 사용자에게 입력받은 뒤 num2의 1의 자리, 10의 자리, 100의 자리 자릿수를 구한 뒤 반복문을 통해 계산 결과를 하나씩 출력하고, 결과값들을 모두 더한 후 반복문이 종료된 다음 최종 값을 출력해주면 된다.이 문제에서 주의할 점은 각 자리수별로 곱셈을 진행 한 뒤 더하는 과정에서 왼쪽으로 한 칸씩 밀리는 것만 주의해주면 된다. 그래서 x라는 변수를 1로 초기화하고, 반복 문안에서 10배씩 증가하도록 설정하여 결과값을 구했다.