1051 復(fù)數(shù)乘法

題目描述:

復(fù)數(shù)可以寫成 (A+Bi) 的常規(guī)形式,其中 A 是實(shí)部,B 是虛部,i 是虛數(shù)單位,滿足 i*i=?1;也可以寫成極坐標(biāo)下的指數(shù)形式 (R×e(Pi)),其中 R 是復(fù)數(shù)模,P 是輻角,i 是虛數(shù)單位,其等價(jià)于三角形式 R(cos(P)+isin(P))?,F(xiàn)給定兩個(gè)復(fù)數(shù)的 R 和 P,要求輸出兩數(shù)乘積的常規(guī)形式。

輸入格式:

輸入在一行中依次給出兩個(gè)復(fù)數(shù)的 R1,P1,R2,P2,數(shù)字間以空格分隔。

輸出格式:

在一行中按照 A+Bi 的格式輸出兩數(shù)乘積的常規(guī)形式,實(shí)部和虛部均保留 2 位小數(shù)。注意:如果 B 是負(fù)數(shù),則應(yīng)該寫成 A-|B|i 的形式。

輸入樣例:

2.3 3.5 5.2 0.4

輸出樣例:

-8.68-8.23i

解題要點(diǎn):

1.(a+bi)(c+di)=(ac-bd)+(bc+ad)i
2.R(cos(P)+isin(P))
3.double 判 0 技巧
/

代碼:

#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;
int main(){
    double r1,p1,r2,p2;
    cin>>r1>>p1>>r2>>p2;
    double a=r1*r2*(cos(p1)*cos(p2)-sin(p1)*sin(p2));
    double b=r1*r2*(cos(p1)*sin(p2)+cos(p2)*sin(p1));
    if(fabs(a)<0.005) a=0;
    if(fabs(b)<0.005) b=0;
     if (b<0){
        cout<<setiosflags(ios::fixed)<<setprecision(2)<<a<<b<<"i";
    }
    else {
        cout<<setiosflags(ios::fixed)<<setprecision(2)<<a<<"+"<<b<<"i";
    }
} 
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容