Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++로 구현하는 복소수 곱셈 프로그램 완벽 가이드

복소수(複素數)는 a + bi 형태로 표현되는 수입니다. 여기서 i는 허수 단위를 의미하며, a와 b는 각각 실수입니다. 복소수의 대표적인 예시는 다음과 같습니다.

2+3i
5+9i
4+2i

이번 글에서는 두 개의 복소수를 입력받아 곱셈 결과를 계산하는 C++ 프로그램을 살펴보겠습니다.

예제 코드

#include<iostream>
using namespace std;
int main(){
    int x1, y1, x2, y2, x3, y3;
    cout<<"Enter the first complex number : "<<endl;
    cin>> x1 >> y1;

    cout<<"\nEnter second complex number : "<<endl;
    cin>> x2 >> y2;
    x3 = x1 * x2 - y1 * y2;
    y3 = x1 * y2 + y1 * x2;
    cout<<"The value after multiplication is: "<<x3<<" + "<<y3<<" i ";
    return 0;
}

실행 결과

위 프로그램을 컴파일하고 실행하면 다음과 같은 결과가 출력됩니다.

Enter the first complex number : 2 1
Enter second complex number : 3 4
The value after multiplication is: 2 + 11 i

코드 상세 설명

1. 사용자 입력 받기

프로그램은 먼저 사용자로부터 두 개의 복소수를 입력받습니다. 각 복소수는 실수부와 허수부로 나누어 저장됩니다.

cout<<"Enter the first complex number : "<<endl;
cin>> x1 >> y1;

cout<<"\nEnter second complex number : "<<endl;
cin>> x2 >> y2;

여기서 첫 번째 복소수는 x1 + y1i, 두 번째 복소수는 x2 + y2i로 표현됩니다.

2. 복소수 곱셈 공식 적용

두 복소수의 곱은 다음 수학적 공식을 이용해 계산합니다.

(a + bi)(c + di) = (ac − bd) + (ad + bc)i

이 공식을 코드로 구현한 부분은 다음과 같습니다.

x3 = x1 * x2 - y1 * y2;
y3 = x1 * y2 + y1 * x2;
  • x3: 결과 복소수의 실수부 (x1·x2 − y1·y2)
  • y3: 결과 복소수의 허수부 (x1·y2 + y1·x2)

3. 결과 출력

마지막으로 계산된 곱셈 결과를 화면에 출력합니다.

cout<<"The value after multiplication is: "<<x3<<" + "<<y3<<" i ";

검산하기

예제의 입력값으로 직접 검산해 보겠습니다. 첫 번째 복소수가 2+1i, 두 번째 복소수가 3+4i일 때:

  • 실수부: (2 × 3) − (1 × 4) = 6 − 4 = 2
  • 허수부: (2 × 4) + (1 × 3) = 8 + 3 = 11

따라서 최종 결과는 2 + 11i가 되며, 프로그램의 출력값과 일치하는 것을 확인할 수 있습니다.

마무리

이처럼 복소수 곱셈은 분배법칙과 허수 단위 i² = −1의 성질만 이해하면 간단한 산술 연산으로 구현할 수 있습니다. 위 프로그램은 기본 자료형 int를 사용했지만, 더 큰 범위의 값을 다루려면 double 타입으로 변경하거나, C++ 표준 라이브러리인 <complex> 헤더의 std::complex 클래스를 활용하는 방법도 고려해볼 수 있습니다.