Leetcode 537 複數乘法 C

2021-10-08 04:27:46 字數 1424 閱讀 1119

給定兩個表示複數的字串。

返回表示它們乘積的字串。注意,根據定義 i2 = -1 。

示例 1:

輸入: "1+1i", "1+1i"

輸出: "0+2i"

解釋: (1 + i) * (1 + i) = 1 + i2 + 2 * i = 2i ,你需要將它轉換為 0+2i 的形式。

示例 2:

輸入: "1+-1i", "1+-1i"

輸出: "0+-2i"

解釋: (1 - i) * (1 - i) = 1 + i2 - 2 * i = -2i ,你需要將它轉換為 0+-2i 的形式。

注意:

輸入字串不包含額外的空格。

輸入字串將以 a+bi 的形式給出,其中整數 a 和 b 的範圍均在 [-100, 100]之間。輸出也應當符合這種形式。

對於兩個複數a1+b1i、a2+b2i,其乘法的結果為(a1a2-b1b2)+(a1b2+b1a2)i,因此我們先獲取a1、b1、a2、b2,然後利用公式求出。詳細過程見**

string complexnumbermultiply

(string a, string b)

if(fuhao) a1 *=-

1;fuhao =0;

i++;if

(a[i]

=='-'

) fuhao=1;

else b1 = a[i]

-'0'

;for

(i++

; ilength()

-1; i++)if

(fuhao) b1 *=-

1;fuhao=0;

if(b[0]

=='-'

) fuhao=1;

else a2=b[0]

-'0'

;for

(i=1

; b[i]

!='+'

; i++)if

(fuhao) a2 *=-

1;fuhao =0;

i++;if

(b[i]

=='-'

) fuhao=1;

else b2 = b[i]

-'0'

;for

(i++

; ilength()

-1; i++)if

(fuhao) b2 *=-

1;return

to_string

(a1*a2-b1*b2)

+"+"

+to_string

(a1*b2+b1*a2)

+"i"

;}

537 複數乘法

給定兩個表示複數的字串。返回表示它們乘積的字串。注意,根據定義 i2 1 示例 1 輸入 1 1i 1 1i 輸出 0 2i 解釋 1 i 1 i 1 i2 2 i 2i 你需要將它轉換為 0 2i 的形式。示例 2 輸入 1 1i 1 1i 輸出 0 2i 解釋 1 i 1 i 1 i2 2 i ...

力扣 537 複數乘法

給定兩個表示複數的字串。返回表示它們乘積的字串。注意,根據定義 i2 1 輸入字串不包含額外的空格。輸入字串將以 a bi 的形式給出,其中整數 a 和 b 的範圍均在 100,100 之間。輸出也應當符合這種形式。輸入 1 1i 1 1i 輸出 0 2i 解釋 1 i 1 i 1 i2 2 i 2...

複數乘法 leetcode No 537 複數乘法

537.複數乘法 力扣 leetcode leetcode cn.com 題目描述 給定兩個表示複數的字串。返回表示它們乘積的字串。注意,根據定義 i2 1 示例 1 輸入 1 1i 1 1i 輸出 0 2i 解釋 1 i 1 i 1 i2 2 i 2i 你需要將它轉換為 0 2i 的形式。示例 2...