複數可以寫成 (a+bi) 的常規形式,其中 a 是實部,b 是虛部,i 是虛數單位,滿足 i^2 =−1;也可以寫成極座標下的指數形式 (r×e^(pi) ),其中 r 是複數模,p 是輻角,i 是虛數單位,其等價於三角形式r(cos( p)+isin( p))。
現給定兩個複數的 r 和 p,要求輸出兩數乘積的常規形式。
輸入在一行中依次給出兩個複數的 r1, p1, r2, p2,數字間以空格分隔。
在一行中按照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,要求輸出...