안녕하세요, 작가 J입니다. 이번에는 8자리 정수를 입력받아 반복문을 활용하여 입력받은 정수의 합을 구하여 출력하는 프로그램을 두 가지 방식으로 작성해 보겠습니다. 이 예제는 문자열을 숫자로 변환하고 반복문을 통해 각 자리 숫자를 처리하는 방법을 배우는 데 도움이 될 것입니다.
[Java Festival 16] 8자리 정수의 합 구하기
8자리 정수를 입력받아 반복문을 활용하여
입력받은 정수의 합을 구하여
출력하는 프로그램을 작성하시오.
문제 설명
8자리 정수를 입력받아 반복문을 활용하여 입력받은 정수의 각 자리 숫자의 합을 구하여 출력하는 프로그램을 작성하세요. 입력받은 8자리 정수의 각 자릿수를 더하는 과정은 다음과 같이 진행됩니다
정수 입력 : 25462581
각 자리 숫자의 합: 2 + 5 + 4 + 6 + 2 + 5 + 8 + 1 = 33
답안 : 합은 33입니다.
정수 입력 : 12345678
각 자리 숫자의 합: 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 = 36
답안 : 합은 36입니다.
코드 풀이 1: 문자열 배열을 이용한 방식
먼저 문자열 배열을 이용한 방식을 설명하겠습니다.
package Ex;
import java.util.Scanner;
public class Ex16 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("정수 입력 : ");
String[] str = sc.next().split("");
int sum = 0;
for (String string : str) {
sum += Integer.parseInt(string);
}
System.out.println("합은 " + sum + "입니다.");
sc.close();
}
}
코드 설명
- 사용자 입력 받기 사용자로부터 8자리 정수를 문자열 형태로 입력받습니다.
- String[] str = sc.next().split("");: 사용자가 입력한 8자리 정수를 문자열로 받아서, 각 문자를 개별 요소로 갖는 문자열 배열로 분리합니다.
- 합을 저장할 변수 초기화 정수의 각 자리 숫자의 합을 저장할 변수를 초기화합니다.
- int sum = 0;: 각 자리 숫자의 합을 저장할 변수를 0으로 초기화합니다.
- 반복문을 통해 각 자리 숫자 처리 문자열 배열의 각 요소를 숫자로 변환하고 합을 계산합니다.
- for (String string : str): 문자열 배열의 각 요소를 순회하는 반복문입니다.
- sum += Integer.parseInt(string);: 문자열 요소를 정수로 변환하고, 이를 합계에 더합니다.
코드 풀이 2: 문자열 문자 단위로 처리하는 방식
두 번째 방식으로, 문자열을 문자 단위로 처리하여 각 자리 숫자의 합을 구하는 코드를 작성하겠습니다.
import java.util.Scanner;
public class Ex16Alternate {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("8자리 정수를 입력하세요: ");
String input = sc.nextLine();
int sum = 0;
for (int i = 0; i < input.length(); i++) {
char digitChar = input.charAt(i); // 현재 문자를 가져오기
int digit = Character.getNumericValue(digitChar); // 문자를 숫자로 변환
sum += digit; // 숫자를 합에 더하기
}
System.out.println("합은 " + sum + "입니다.");
sc.close();
}
}
코드 설명
- 사용자 입력 받기 사용자로부터 8자리 정수를 문자열 형태로 입력받습니다.
- String input = sc.nextLine();: 사용자가 입력한 8자리 정수를 문자열로 변수 input에 저장합니다.
- 합을 저장할 변수 초기화 정수의 각 자리 숫자의 합을 저장할 변수를 초기화합니다.
- int sum = 0;: 각 자리 숫자의 합을 저장할 변수를 0으로 초기화합니다.
- 반복문을 통해 각 자리 숫자 처리 입력받은 문자열의 각 문자를 숫자로 변환하고 합을 계산합니다.
- for (int i = 0; i < input.length(); i++): 문자열의 각 문자를 순회하는 반복문입니다.
- char digitChar = input.charAt(i);: 현재 문자를 가져옵니다.
- int digit = Character.getNumericValue(digitChar);: 문자를 숫자로 변환합니다.
- sum += digit;: 변환된 숫자를 합에 더합니다.
결국 이 두 풀이의 핵심은 문자열로 입력을 받아서 분리 후 문자를 숫자로 변환하는 것입니다.
마무리
이번 예제에서는 8자리 정수를 입력받아 각 자리 숫자의 합을 구하는 두 가지 방법을 배웠습니다. 이를 통해 문자열을 숫자로 변환하고, 반복문을 통해 각 자리 숫자를 처리하는 방법을 익힐 수 있었습니다. 이러한 기본적인 문자열 처리와 반복문 사용법은 다양한 프로그래밍 문제를 해결하는 데 매우 유용합니다.
프로그래밍을 시작하는 모든 분께 이 예제가 도움이 되길 바랍니다. 앞으로도 다양한 유형의 문제를 통해 여러분의 학습을 도울 수 있도록 노력하겠습니다. 감사합니다!
'프로그래밍 기초 > Java Festival' 카테고리의 다른 글
[Java Festival] 17. 3의 배수인 숫자 출력하기 (0) | 2024.06.30 |
---|---|
[Java Festival] Bonus 03. 연산 메소드 작성하기 (0) | 2024.06.30 |
[Java Festival] 15. 특정 수열의 n번째 항까지 출력하기 (0) | 2024.06.29 |
[Java Festival] 14. 스네이크 배열 출력하기 (0) | 2024.06.29 |
[Java Festival] 13. 학생 성적 정보 분석하기 (0) | 2024.06.26 |