1051 复数乘法 (15 分)

Posted anber82

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1051 复数乘法 (15 分)相关的知识,希望对你有一定的参考价值。

题目:

技术图片


思路:

  • 调用math函数库即可计算。另外需要注意若实部和虚部小于0.005且为负数时保留两位小数得到的是-0.00,直接上会wrong answer,所以需要将保留两位小数得到的结果为0的数去符号。

代码:

 1 #include <iostream>
 2 #include <cmath> 
 3 using namespace std;
 4 
 5 int main()
 6 
 7     double r1, r2, p1, p2;
 8     cin >> r1 >> p1 >> r2 >> p2;
 9     double fact1 = r1 * r2 * ( cos(p1) * cos(p2) - sin(p1) * sin(p2) );
10     double fact2 = r1 * r2 * ( cos(p1) * sin(p2) + sin(p1) * cos(p2) );
11     if(fabs(fact1) < 0.005) 
12     
13         fact1 = 0;
14     
15     if(fabs(fact2) < 0.005) 
16     
17         fact2 = 0;
18     
19     if(fact2 < 0)
20         printf("%.2lf%.2lfi\\n",fact1, fact2);
21     else
22         printf("%.2lf+%.2lfi\\n",fact1, fact2);
23     return 0;
24 

 总结:

  • 要考虑0的符号。

 

以上是关于1051 复数乘法 (15 分)的主要内容,如果未能解决你的问题,请参考以下文章

B1051 复数乘法(15 分)

1051 复数乘法 (15分)

PAT Basic 1051 复数乘法 (15 分)

1051 复数乘法 (15 分)

PAT乙级1051 复数乘法 (15 分)

1051. 复数乘法 (15)