[wecode/codetaka]Day 11

Jimin_Note·2022년 6월 21일
0

⌨️wecode/code_kata

목록 보기
11/13
post-thumbnail

📍문제

두 개의 input에는 복소수(complex number)가 string 으로 주어집니다. 복소수란 a+bi 의 형태로, 실수와 허수로 이루어진 수입니다.
input으로 받은 두 수를 곱해서 반환해주세요. 반환하는 표현도 복소수 형태의 string 이어야 합니다.
복소수 정의에 의하면 (i^2)는 -1 이므로 (i^2) 일때는 -1로 계산해주세요.
제곱 표현이 안 되어 i의 2제곱을 (i^2)라고 표현했습니다.

inputoutput
"1+1i", "1+1i"0+2i
"1+-1i", "1+-1i"0+-2
"1+3i", "1+-2i"7+1i

📍내 코드

def complex_number_multiply(a, b):
    # 여기에 코드를 작성해주세요.
  a1,a2=map(int, a[:-1].split('+')) #맨 뒤 'i'를 뻬고 1+1 이러한 상태에서 '+'기분으로 split
  b1,b2=map(int, b[:-1].split('+'))#맨 뒤 'i'를 뻬고 1+1 이러한 상태에서 '+'기분으로 split
 
  return "%d+%di" % (a1*b1-a2*b2,a1*b2+a2*b1) 

ex)
(a1+a2)(b1*b2) = a1b1 + a2b1 + a1b2 + a2b2
여기서 a2와 b2는 허수이기 때문에
i * i = -1
a2b2의 부호는 -
즉 , a1b1 + a2b1 + a1b2 - a2b2
a1b1, -a2b2는 실수
a2b1, a1b2는 허수

=> (a1b1-a2b2) + (a1b2+a2b1) i 의 형태로 반환

profile
Hello. I'm jimin:)

0개의 댓글