题目:

思路:
- 调用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 }
总结: