두 개의 input에는 복소수(complex number)가 string 으로 주어집니다.
복소수란 a+bi 의 형태로, 실수와 허수로 이루어진 수입니다.
input으로 받은 두 수를 곱해서 반환해주세요.
반환하는 표현도 복소수 형태의 string 이어야 합니다.
복소수 정의에 의하면 (i^2)는 -1 이므로 (i^2) 일때는 -1로 계산해주세요.
Input: "1+1i", "1+1i"
Output: "0+2i"
설명:
(1 + i) * (1 + i) = 1 + i + i + i^2 = 2i
2i를 복소수 형태로 바꾸면 0+2i.
Input: "1+-1i", "1+-1i"
Output: "0+-2i"
설명:
(1 - i) * (1 - i) = 1 - i - i + i^2 = -2i,
-2i를 복소수 형태로 바꾸면 0+-2i.
Input: "1+3i", "1+-2i"
Output: "7+1i"
설명:
(1 + 3i) * (1 - 2i) = 1 - 2i + 3i -6(i^2) = 1 + i + 6,
7+i를 복소수 형태로 바꾸면 7+1i.
input은 항상 a+bi 형태입니다.
output도 a+bi 형태로 나와야 합니다.
need to know
- 일단 복소수를 잘 이해하고,
- 결국 a+bi형태로 진행한다는 것을 이해해라
- 문자가 숫자랑 같이 있으면 곱하기를 할 수 가 없으니 ㅡ ㅡ 먼저 숫자먼저 뺴자
문자로 짜봐
- 먼저 a+bi의 형태이기 때문에 인덱스로 마지막을 지우고, split을 사용해서 나누어주자.
- 그리고 각각 인덱스 별로 변수를 지정해 주는데 이때 int로 바꿔줘라 !
- 그리고 나서 계산 해주면 된다 .
- 그리고 "+"로 합치장 .. !
정답
def complex_number_multiply(a, b): a = a[:-1].split("+") b = b[:-1].split("+") a1 = int(a[0]) a2 = int(a[1]) b1 = int(b[0]) b2 = int(b[1]) result = ((a1*b1) - (a2*b2)), ((a1 * b2) + (a2 * b1)) return str(result[0]) + "+" + str(result[1]) + "i"
참고
split()[:-1]- 문자열끼리
+사용