안녕하세요, 작가 J입니다. 이번에는 세 자리 수의 곱셈 과정을 단계별로 출력하는 프로그램을 작성해 보겠습니다. 이 예제는 숫자를 자리수로 분해하여 각 자리의 곱셈 결과를 출력하는 방법을 이해하는 데 도움이 됩니다.
[Java Festival 26] 세 자리 수의 곱셈 계산
(세 자리 수) * (세 자리 수)는 다음과 같이 계산된다.
(1), (2)번을 입력받아 결과 화면처럼 (3), (4), (5), (6)번을
출력하는 프로그램을 작성하시오
코드 풀이 1: 자리수를 분리하여 곱셈 결과 출력
package Ex;
import java.util.Scanner;
public class Ex26 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 사용자로부터 두 개의 세 자리 수를 입력받기
System.out.print("첫 번째 숫자 입력 >> ");
int num1 = sc.nextInt();
System.out.print("두 번째 숫자 입력 >> ");
int num2 = sc.nextInt();
// 두 번째 숫자의 각 자리 수를 분리
int units = num2 % 10; // 일의 자리
int tens = (num2 % 100) / 10; // 십의 자리
int hundreds = num2 / 100; // 백의 자리
// 각 자리 수와 첫 번째 숫자의 곱셈 결과 출력
System.out.println(num1 * units);
System.out.println(num1 * tens);
System.out.println(num1 * hundreds);
// 전체 곱셈 결과 출력
int result = (num1 * units) + (num1 * tens * 10) + (num1 * hundreds * 100);
System.out.println(result);
sc.close();
}
}
1. 사용자 입력 받기
- System.out.print("첫 번째 숫자 입력 >> ");
- System.out.print("두 번째 숫자 입력 >> ");
- 사용자가 입력한 두 개의 세 자리 수를 num1과 num2에 저장합니다.
2. 두 번째 숫자의 각 자리 수 분리
- int units = num2 % 10;: 일의 자리 수를 계산합니다.
- int tens = (num2 % 100) / 10;: 십의 자리 수를 계산합니다.
- int hundreds = num2 / 100;: 백의 자리 수를 계산합니다.
3. 각 자리 수와 첫 번째 숫자의 곱셈 결과 출력
- System.out.println(num1 * units);: 일의 자리 수와 곱한 결과를 출력합니다.
- System.out.println(num1 * tens);: 십의 자리 수와 곱한 결과를 출력합니다.
- System.out.println(num1 * hundreds);: 백의 자리 수와 곱한 결과를 출력합니다.
4. 전체 곱셈 결과 출력
- int result = (num1 * units) + (num1 * tens * 10) + (num1 * hundreds * 100);
- 모든 자리 수와의 곱셈 결과를 합산하여 출력합니다.
코드 풀이 2: 간단한 반복문을 사용한 방식
package Ex;
import java.util.Scanner;
public class Ex26Alternative {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 사용자로부터 두 개의 세 자리 수를 입력받기
System.out.print("첫 번째 숫자 입력 >> ");
int num1 = sc.nextInt();
System.out.print("두 번째 숫자 입력 >> ");
int num2 = sc.nextInt();
// 두 번째 숫자를 문자열로 변환
String num2Str = String.valueOf(num2);
// 각 자리 수와 첫 번째 숫자의 곱셈 결과 출력
for (int i = num2Str.length() - 1; i >= 0; i--) {
int digit = Character.getNumericValue(num2Str.charAt(i));
System.out.println(num1 * digit);
}
// 전체 곱셈 결과 출력
System.out.println(num1 * num2);
sc.close();
}
}
1. 두 번째 숫자를 문자열로 변환
- String num2Str = String.valueOf(num2);: num2를 문자열로 변환합니다.
2. 각 자리 수와 첫 번째 숫자의 곱셈 결과 출력
- for (int i = num2Str.length() - 1; i >= 0; i--) { ... }
- 문자열의 각 자리 수를 거꾸로 순회하여 해당 자리 수와 num1의 곱셈 결과를 출력합니다.
3. 전체 곱셈 결과 출력
- System.out.println(num1 * num2);: 두 숫자의 전체 곱셈 결과를 출력합니다
마무리
이번 예제에서는 세 자리 수의 곱셈 과정을 단계별로 출력하는 두 가지 방법을 다뤄보았습니다. 첫 번째 방법은 자리 수를 분리하여 각 자리의 곱셈 결과를 출력하는 방식이며, 두 번째 방법은 문자열로 변환한 후 반복문을 사용하여 각 자리의 곱셈 결과를 출력하는 방식입니다. 두 가지 방법 모두 이해하시는데 도움이 되길 바랍니다.
프로그래밍을 시작하는 모든 분께 이 예제가 도움이 되길 바랍니다. 앞으로도 다양한 유형의 문제를 통해 여러분의 학습을 도울 수 있도록 노력하겠습니다. 감사합니다!
'프로그래밍 기초 > Java Festival' 카테고리의 다른 글
[Java Festival] Bonus06. 거듭제곱 계산하기 (0) | 2024.07.05 |
---|---|
[Java Festival] 27. Java 시험 문제 채점하기 (0) | 2024.07.05 |
[Java Festival] 25. 숫자에 사용되는 대시('-')의 개수 계산하기 (0) | 2024.07.05 |
[Java Festival] 24. N개의 숫자 중 X보다 작은 수만 출력하기 (0) | 2024.07.04 |
[Java Festival] 23. 2차원 배열 왼쪽으로 90도 회전하기 (0) | 2024.07.04 |