Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

자바(Java)로 두 개의 복소수 더하기 – 예제 코드로 배우는 완벽 가이드

이 글에서는 자바(Java)로 두 개의 복소수를 더하는 방법을 단계별로 살펴봅니다. 복소수는 실수부에 더해 'i'로 표현되는 허수부를 가지는 수입니다. 다행히 두 복소수의 합은 생각보다 간단합니다. 실수부끼리, 허수부끼리 각각 더해 주면 됩니다.

아래는 그 동작 방식을 보여주는 예시입니다.

입력

15 +i24 와 3 +i7

출력

18 +i31

알고리즘

  1. 프로그램을 시작합니다.
  2. 세 개의 복소수 객체인 my_input_1, my_input_2, my_result를 선언합니다.
  3. 두 입력 복소수의 값을 지정합니다.
  4. 실수부와 허수부를 각각 더한 뒤 그 결과를 반환하는 add_complex_number 함수를 정의합니다.
  5. 반환된 결과를 my_result 변수에 저장합니다.
  6. 결과를 화면에 출력합니다.
  7. 프로그램을 종료합니다.

예제 1: 클래스 메서드를 활용한 덧셈

첫 번째 예제에서는 복소수를 표현하는 전용 클래스를 만들고, 그 안에 덧셈 메서드를 정의하여 두 복소수를 더합니다.

import java.util.*;
class ComplexNumbers {
    int my_real_number, my_imaginary_number;
    ComplexNumbers() {}
    ComplexNumbers(int my_real_temp, int my_imaginary_temp){
       my_real_number = my_real_temp;
       my_imaginary_number = my_imaginary_temp;
    }
    ComplexNumbers AddComplexNumbers(ComplexNumbers my_input_1, ComplexNumbers my_input_2){
       ComplexNumbers my_temp = new ComplexNumbers();
       my_temp.my_real_number = my_input_1.my_real_number + my_input_2.my_real_number;
       my_temp.my_imaginary_number = my_input_1.my_imaginary_number + my_input_2.my_imaginary_number;
       return my_temp;
    }
}
public class MainFunction {
    public static void main(String[] args){
       System.out.println("필요한 패키지가 모두 임포트되었습니다");
       ComplexNumbers my_input_1 = new ComplexNumbers(15, 24);
       System.out.println("첫 번째 복소수 : " + my_input_1.my_real_number + " + i" + my_input_1.my_imaginary_number);
       ComplexNumbers my_input_2 = new ComplexNumbers(3, 7);
       System.out.println("두 번째 복소수 : " + my_input_2.my_real_number + " + i" + my_input_2.my_imaginary_number);
       ComplexNumbers my_result = new ComplexNumbers();
       my_result = my_result.AddComplexNumbers(my_input_1, my_input_2);
       System.out.println("두 복소수의 합 : " + my_result.my_real_number + " + i" + my_result.my_imaginary_number);
    }
}

실행 결과

필요한 패키지가 모두 임포트되었습니다
첫 번째 복소수 : 15 + i24
두 번째 복소수 : 3 + i7
두 복소수의 합 : 18 + i31

이 코드에서 ComplexNumbers 클래스는 실수부(my_real_number)와 허수부(my_imaginary_number)를 필드로 가집니다. AddComplexNumbers 메서드는 두 객체의 실수부와 허수부를 각각 더한 뒤, 그 결과를 담은 새로운 객체를 반환합니다.

예제 2: 정적 메서드를 활용한 덧셈

두 번째 예제에서는 복소수 값이 미리 정의되어 있으며, 정적(static) 메서드를 사용해 두 복소수를 더하고 그 결과를 콘솔에 출력합니다.

public class ComplexNumber {
    int real_number, imaginary_number;
    public ComplexNumber(int r, int i){
       this.real_number = r;
       this.imaginary_number = i;
    }
    public void print_complex_number(){
       System.out.print(this.real_number + " +i" + this.imaginary_number);
    }
    public static ComplexNumber add_complex_number(ComplexNumber n1, ComplexNumber n2){
       ComplexNumber my_result = new ComplexNumber(0, 0);
       my_result.real_number = n1.real_number + n2.real_number;
       my_result.imaginary_number = n1.imaginary_number + n2.imaginary_number;
       return my_result;
    }
    public static void main(String arg[]){
       ComplexNumber my_input_1 = new ComplexNumber(15, 24);
       ComplexNumber my_input_2 = new ComplexNumber(3, 7);
       System.out.println("두 복소수는 다음과 같이 정의되었습니다");
       my_input_1.print_complex_number();
       System.out.print(" 그리고 ");
       my_input_2.print_complex_number();
       ComplexNumber my_result = add_complex_number(my_input_1, my_input_2);
       System.out.println("\n두 복소수의 합은 다음과 같습니다 :");
       my_result.print_complex_number();
    }
}

실행 결과

두 복소수는 다음과 같이 정의되었습니다
15 +i24 그리고 3 +i7
두 복소수의 합은 다음과 같습니다 :
18 +i31

정리

두 복소수를 더하는 핵심 원리는 매우 간단합니다. 실수부는 실수부끼리, 허수부는 허수부끼리 각각 더하면 됩니다. 첫 번째 예제처럼 인스턴스 메서드를 활용할 수도 있고, 두 번째 예제처럼 정적 메서드로 구현할 수도 있습니다. 상황과 코드 구조에 맞는 방식을 선택해 사용하시기 바랍니다.