본문 바로가기
자바(Java)

조화급수 1 + 1/2 + 1/3 + 1/4 + 1/5 +……+ 1/n의 합을 구하는 자바 프로그램 쉽게 이해하기

by 코딩하는 욤욤이 2024. 11. 18.
반응형

조화급수(Harmonic series)는 수학에서 1부터 시작해서 각 항이 점점 작아지는 형태로, 다음과 같은 식으로 표현됩니다:

Hn=1+1/2+1/3+1/4+⋯+1/n

여기서 Hn은 조화급수의 합입니다. 이를 계산하는 자바 프로그램을 작성하면서 쉽게 이해할 수 있도록 단계별로 설명하겠습니다.


1. 프로그램의 전체 구조 이해하기

자바 프로그램은 보통 다음과 같은 구조로 작성됩니다:

  • 입력: 사용자로부터 계산하고 싶은 n 값을 입력받습니다.
  • 처리: 조화급수를 계산합니다.
  • 출력: 계산 결과를 화면에 출력합니다.

2. 세부 코드 설명

(1) 필요한 도구 준비

자바에서 사용자 입력을 받으려면 Scanner라는 클래스를 사용해야 합니다. 이를 사용하여 n 값을 입력받을 것입니다.

 

(2) 조화급수 계산

조화급수를 계산하려면 반복문을 사용해서 1,1/2,1/3,⋯ ,1/n을 더해줘야 합니다. 이를 위해 for문을 사용합니다.


3. 전체 코드

아래는 조화급수 합을 계산하는 자바 프로그램 코드입니다:

import java.util.Scanner; // 사용자 입력을 받기 위한 도구

public class HarmonicSeries {
    public static void main(String[] args) {
        // 1. 사용자로부터 n 입력받기
        Scanner scanner = new Scanner(System.in);
        System.out.print("조화급수를 계산할 n 값을 입력하세요: ");
        int n = scanner.nextInt();

        // 2. 조화급수 합 계산하기
        double harmonicSum = 0.0; // 합을 저장할 변수
        for (int i = 1; i <= n; i++) {
            harmonicSum += 1.0 / i; // 각 항의 값을 더하기
        }

        // 3. 결과 출력하기
        System.out.printf("n=%d일 때 조화급수의 합은 %.5f 입니다.\n", n, harmonicSum);

        // 스캐너 닫기 (좋은 습관)
        scanner.close();
    }
}

4. 코드 설명

(1) Scanner를 이용한 입력

Scanner scanner = new Scanner(System.in);
System.out.print("조화급수를 계산할 n 값을 입력하세요: ");
int n = scanner.nextInt();

 

  • Scanner scanner = new Scanner(System.in);: 키보드로부터 입력을 받을 수 있는 스캐너 객체를 생성합니다.
  • scanner.nextInt();: 사용자가 입력한 정수 값을 읽어옵니다.

(2) 조화급수 계산

double harmonicSum = 0.0; // 결과를 저장할 변수
for (int i = 1; i <= n; i++) {
    harmonicSum += 1.0 / i; // 각 항의 값을 누적합
}

 

  • double harmonicSum = 0.0;: 소수점 값을 저장하기 위해 double 타입을 사용합니다.
  • for (int i = 1; i <= n; i++): 1부터 n까지 반복합니다.
  • harmonicSum += 1.0 / i;: 1,1/2,1/3,⋯를 순서대로 더합니다.

(3) 결과 출력

System.out.printf("n=%d일 때 조화급수의 합은 %.5f 입니다.\n", n, harmonicSum);

 

 

  • 프로그램이 끝날 때 스캐너를 닫아주는 것이 좋습니다. 이는 자원을 효율적으로 관리하기 위한 습관입니다.

5. 실행 예제

입력:

조화급수를 계산할 n 값을 입력하세요: 5

출력:

n=5일 때 조화급수의 합은 2.28333 입니다.

6. 추가 팁

  • 실수 처리 주의: 1.0 / i처럼 1.0을 사용해 실수 계산을 해야 정확한 결과를 얻을 수 있습니다. 그렇지 않으면 정수 나눗셈이 발생할 수 있습니다.
  • n 값 계산: 값이 커지면 합이 점점 천천히 증가합니다. 실험해보면서 확인해 보세요!
 
반응형