1051 复数乘法 (15分)

复数可以写成  ( 的常规形式,其中 A 是实部,B 是虚部,i 是虚数单位,满足 1;也可以写成极坐标下的指数形式 (,其中 R 是复数模,P 是辐角,i 是虚数单位,其等价于三角形式 (。

现给定两个复数的 R 和 P,要求输出两数乘积的常规形式。

输入格式:

输入在一行中依次给出两个复数的 R1​​, P1​​, R2​​, P2​​,数字间以空格分隔。

输出格式:

在一行中按照 A+Bi 的格式输出两数乘积的常规形式,实部和虚部均保留 2 位小数。注意:如果 B 是负数,则应该写成 A-|B|i 的形式。

输入样例:

2.3 3.5 5.2 0.4
 

输出样例:

-8.68-8.23i

 1 #include <stdio.h>
 2 #include <iostream>
 3 #include <string.h>
 4 #include <cmath>
 5 using namespace std;
 6 
 7 int main(){
 8     
 9     
10     double r1,p1,r2,p2,a,b;    
11     
12     cin>>r1>>p1>>r2>>p2;
13     
14     a=r1*r2*(cos(p1)*cos(p2)-sin(p1)*sin(p2));
15     b=r1*r2*(cos(p1)*sin(p2)+sin(p1)*cos(p2));
16     //保留两位小数,所以实数和虚数部分的绝对值小于0.01的话,直接以0.00代替 
17     if(fabs(a)<0.01)
18         printf("0.00");
19     else
20         printf("%.2lf",a);
21     
22     if(fabs(b)<0.01)
23         printf("+0.00i");    
24     else if(b<0)
25         printf("%.2lfi",b);
26     else
27         printf("+%.2lfi",b);
28     
29     return 0;
30 } 
 

猜你喜欢

转载自www.cnblogs.com/geyang/p/12272840.html