1051 複數乘法 15 分

2021-10-21 17:36:30 字數 1633 閱讀 2830

複數可以寫成 (a+bi) 的常規形式,其中 a 是實部,b 是虛部,i 是虛數單位,滿足 i​^2 =−1;也可以寫成極座標下的指數形式 (r×e^​(pi) ),其中 r 是複數模,p 是輻角,i 是虛數單位,其等價於三角形式r(cos( p)+isin( p))。

現給定兩個複數的 r 和 p,要求輸出兩數乘積的常規形式。

輸入在一行中依次給出兩個複數的 r​1, p1, r2, p​2,數字間以空格分隔。

在一行中按照a+bi的格式輸出兩數乘積的常規形式,實部和虛部均保留 2 位小數。注意:如果 b 是負數,則應該寫成 a-|b|i 的形式。

2.3

3.55.2

0.4

8.68

-8.23i

#include

#include

using

namespace std;

intmain()

else

if(b <

0&& b +

0.005

>=0)

else

if(b >=0)

else

return0;

}

優化後

#include

#include

using

namespace std;

intmain()

坑:

注意題目說明了實部和虛部均保留 2 位小數,所以絕對值小於0.005應該是0.00。

eg:-0.005應該是0.00不是-0.00;0.005應該是0.00;

c++小技巧之四捨五入與保留小數

四捨五入: 保留整數      (

int)

(b +

0.5)

;     保留一位小數 (

int)

((b +

0.05)*

10)/10

;     保留二位小數 (

int)

((b +

0.005)*

100)

/100

;(上面的方法僅適用於正數。)

如果需要對負數進行轉換,可以為這個負數加上乙個足夠大的正整數,使得和變成正數,然後四色五入後再減去前面加上的正整數就好

如: 對 -

3.4進行四捨五入

double a =

-3.4+5

=1.6

int b =

(1.6

+0.5)=

2int answer =2-

5=-3

這兒有個坑, 如 -

3.5, 四捨五入應該是-

3 而不是-

4強制保留兩位小數:include

cout<<

setiosflags

(ios::fixed)

<<

setprecision(2

)<

1051 複數乘法(15 分)

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

1051 複數乘法 (15 分)

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

1051 複數乘法 (15 分)

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