이 글에서는 자바(Java)로 두 개의 복소수를 더하는 방법을 단계별로 살펴봅니다. 복소수는 실수부에 더해 'i'로 표현되는 허수부를 가지는 수입니다. 다행히 두 복소수의 합은 생각보다 간단합니다. 실수부끼리, 허수부끼리 각각 더해 주면 됩니다.
아래는 그 동작 방식을 보여주는 예시입니다.
입력
15 +i24 와 3 +i7
출력
18 +i31
알고리즘
- 프로그램을 시작합니다.
- 세 개의 복소수 객체인 my_input_1, my_input_2, my_result를 선언합니다.
- 두 입력 복소수의 값을 지정합니다.
- 실수부와 허수부를 각각 더한 뒤 그 결과를 반환하는 add_complex_number 함수를 정의합니다.
- 반환된 결과를 my_result 변수에 저장합니다.
- 결과를 화면에 출력합니다.
- 프로그램을 종료합니다.
예제 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
정리
두 복소수를 더하는 핵심 원리는 매우 간단합니다. 실수부는 실수부끼리, 허수부는 허수부끼리 각각 더하면 됩니다. 첫 번째 예제처럼 인스턴스 메서드를 활용할 수도 있고, 두 번째 예제처럼 정적 메서드로 구현할 수도 있습니다. 상황과 코드 구조에 맞는 방식을 선택해 사용하시기 바랍니다.