複數乘法 leetcode No 537 複數乘法

2021-10-12 21:22:13 字數 1203 閱讀 8057

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:

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

輸出: "0+-2i"

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

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

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

解題思路:

複數的乘法公式為:

可以簡單根據 '+' 和 'i' 符號把字串分割為實部和虛部,然後用上式計算即可,可以看出數學的部分並不難,就是字串分割有點麻煩。

現在很多上機筆試是要求不僅寫乙個簡單的函式,而是也要有輸入輸出的部分,所以這部分提前也是要練一練,我反正有一次確定我的答案是對的,但是無奈輸出格式老是被卡住。。。

本題在具體實現的時候,為了簡單,我們可以用 sscanf 函式來讀取字串。

sscanf 的作用是從乙個字串中讀進與指定格式相符的資料。利用它可以從字串中取出整數、浮點數和字串。

sscanf 和 scanf 的區別:scanf 是以鍵盤作為輸入源,而 sscanf 是以字串作為輸入源。

**如下:

class solution 

};

如果有任何疑問,歡迎提出。如果有更好的解法,也歡迎告知。

1051 複數乘法

題目是pat乙級 思路 注意不要輸出 0,就可以了。其它要按照格式 訓練目的 輸出格式 題目描述 複數可以寫成 a bi 的常規形式,其中a是實部,b是虛部,i是虛數單位,滿足i2 1 也可以寫成極座標下的指數形式 r e pi 其中r是複數模,p是輻角,i是虛數單位,其等價於三角形式 r cos ...

1051 複數乘法

1051 複數乘法 15 分 複數可以寫成 a bi 的常規形式,其中 a 是實部,b 是虛部,i 是虛數單位,滿足 i 2 1 也可以寫成極座標下的指數形式 r e pi 其中 r 是複數模,p 是輻角,i 是虛數單位,其等價於三角形式 r cos p isin p 現給定兩個複數的 r 和 p,...

1051 複數乘法

複數可以寫成 a bi 的常規形式,其中 a 是實部,b 是虛部,i 是虛數單位,滿足 i 2 1 也可以寫成極座標下的指數形式 r e pi 其中 r 是複數模,p 是輻角,i 是虛數單位,其等價於三角形式 r cos p isin p 現給定兩個複數的 r 和 p,要求輸出兩數乘積的常規形式。輸...