【最详细】测试点分析_1051 复数乘法 (15分)_14行代码AC
立志用更少的代碼做更高效的表達(dá)
Pat乙級(jí)最優(yōu)化代碼+題解+分析匯總——>傳送門(mén)
復(fù)數(shù)可以寫(xiě)成 (A+Bi) 的常規(guī)形式,其中 A 是實(shí)部,B 是虛部,i 是虛數(shù)單位,滿足 i2=?1i^2=?1i2=?1;也可以寫(xiě)成極坐標(biāo)下的指數(shù)形式 (R×e?(Pi))(R×e^?(Pi))(R×e?(Pi)),其中 R 是復(fù)數(shù)模,P 是輻角,i 是虛數(shù)單位,其等價(jià)于三角形式 R(cos(P)+isin(P))R(cos(P)+isin(P))R(cos(P)+isin(P))。
現(xiàn)給定兩個(gè)復(fù)數(shù)的 R 和 P,要求輸出兩數(shù)乘積的常規(guī)形式。
輸入格式:
輸入在一行中依次給出兩個(gè)復(fù)數(shù)的 R?1 , P?1 , R?2, P2,數(shù)字間以空格分隔。
輸出格式:
在一行中按照 A+Bi 的格式輸出兩數(shù)乘積的常規(guī)形式,實(shí)部和虛部均保留 2 位小數(shù)。注意:如果 B 是負(fù)數(shù),則應(yīng)該寫(xiě)成 A-|B|i 的形式。
輸入樣例:
2.3 3.5 5.2 0.4
輸出樣例:
-8.68-8.23i
問(wèn)題分析
輸入P和R后, 我們就可以根據(jù)公式R(cos(P)+isin(P))R(cos(P)+isin(P))R(cos(P)+isin(P))得出形如a+bia+bia+bi的值, 最后相乘即可。
注意:
1、當(dāng)虛部為正數(shù)時(shí),需要手動(dòng)輸出+號(hào)
2、當(dāng)實(shí)部或虛部為0時(shí),需要輸出0.00。 因?yàn)轭}中要求我們保留兩位小數(shù)
3、還要考慮一種特殊情況, 如果輸入的數(shù)都是形如0.00001這樣的數(shù), 計(jì)算的結(jié)果小于0.005時(shí), 就可以判定為是0了(因?yàn)樗纳嵛迦牒鬄?.00)。(后兩個(gè)測(cè)試點(diǎn))
4、實(shí)數(shù)求絕對(duì)值要用fabs(),整數(shù)求絕對(duì)值使用abs()
#include<bits/stdc++.h> using namespace std; int main() {double r1, p1, r2, p2;cin >> r1 >> p1 >> r2 >> p2;double shi = r1*r2*cos(p1)*cos(p2)-r1*r2*sin(p1)*sin(p2);double xv = r1*r2*cos(p1)*sin(p2)+r1*r2*sin(p1)*cos(p2);if(fabs(shi) < 0.005) printf("0.00");else printf("%.2lf", shi);if(fabs(xv) < 0.005) printf("+0.00i\n");else if(xv < 0) printf("%.2lfi\n", xv);else printf("+%.2lfi\n", xv);return 0; }
每日一句
每一個(gè)不曾起舞的日子,都是對(duì)生命的辜負(fù)
總結(jié)
以上是生活随笔為你收集整理的【最详细】测试点分析_1051 复数乘法 (15分)_14行代码AC的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【最全解析】1050 螺旋矩阵 (25分
- 下一篇: 【最详细解析】1052 卖个萌 (20分