码迷,mamicode.com
首页 > 其他好文 > 详细

1051 复数乘法 (15 分)

时间:2019-07-04 17:23:08      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:lse   inf   ora   mes   image   line   ima   str   bsp   

题目:

技术图片


思路:

  • 调用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 分)

标签:lse   inf   ora   mes   image   line   ima   str   bsp   

原文地址:https://www.cnblogs.com/Anber82/p/11133432.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!