题目:
思路:
- 调用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的符号。