본문 바로가기
프로그래밍 기초/Java Festival

[Java Festival] 16. 8자리 정수의 합 구하기

by 제이투더문 2024. 6. 29.

 

 안녕하세요, 작가 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();
    }
}

 

코드 설명

  1. 사용자 입력 받기 사용자로부터 8자리 정수를 문자열 형태로 입력받습니다.
    •    String[] str = sc.next().split("");: 사용자가 입력한 8자리 정수를 문자열로 받아서, 각 문자를 개별 요소로 갖는 문자열 배열로 분리합니다.
  2. 합을 저장할 변수 초기화 정수의 각 자리 숫자의 합을 저장할 변수를 초기화합니다.
    •    int sum = 0;: 각 자리 숫자의 합을 저장할 변수를 0으로 초기화합니다.
  3. 반복문을 통해 각 자리 숫자 처리 문자열 배열의 각 요소를 숫자로 변환하고 합을 계산합니다.
    •    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();
    }
}

 

코드 설명

 

  1. 사용자 입력 받기 사용자로부터 8자리 정수를 문자열 형태로 입력받습니다.
    •    String input = sc.nextLine();: 사용자가 입력한 8자리 정수를 문자열로 변수 input에 저장합니다.
  2. 합을 저장할 변수 초기화 정수의 각 자리 숫자의 합을 저장할 변수를 초기화합니다.
    •    int sum = 0;: 각 자리 숫자의 합을 저장할 변수를 0으로 초기화합니다.
  3. 반복문을 통해 각 자리 숫자 처리 입력받은 문자열의 각 문자를 숫자로 변환하고 합을 계산합니다.
    •    for (int i = 0; i < input.length(); i++): 문자열의 각 문자를 순회하는 반복문입니다.
    •    char digitChar = input.charAt(i);: 현재 문자를 가져옵니다.
    •    int digit = Character.getNumericValue(digitChar);: 문자를 숫자로 변환합니다.
    •    sum += digit;: 변환된 숫자를 합에 더합니다.

결국 이 두 풀이의 핵심은 문자열로 입력을 받아서 분리 후 문자를 숫자로 변환하는 것입니다.

 

마무리

 이번 예제에서는 8자리 정수를 입력받아 각 자리 숫자의 합을 구하는 두 가지 방법을 배웠습니다. 이를 통해 문자열을 숫자로 변환하고, 반복문을 통해 각 자리 숫자를 처리하는 방법을 익힐 수 있었습니다. 이러한 기본적인 문자열 처리와 반복문 사용법은 다양한 프로그래밍 문제를 해결하는 데 매우 유용합니다.

 

 프로그래밍을 시작하는 모든 분께 이 예제가 도움이 되길 바랍니다. 앞으로도 다양한 유형의 문제를 통해 여러분의 학습을 도울 수 있도록 노력하겠습니다. 감사합니다!