首页 > 其他 > 详细

PTA 1051 复数乘法

时间:2021-04-10 22:49:13      阅读:30      评论:0      收藏:0      [点我收藏+]

1051 复数乘法 (15 分)

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

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

输入格式:

输入在一行中依次给出两个复数的 R?1??, P?1??, R?2??, P?2??,数字间以空格分隔。

输出格式:

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

输入样例:

2.3 3.5 5.2 0.4

输出样例:

-8.68-8.23i

技术分享图片
#include <iostream>
#include <cmath>
using namespace std;
/*首先对于a,当-0.005<a<0时,四舍五入后正确的值应该是0.00,但是编译器会取小数点后两位,然后输出-0.00,显然和答案要求不符,所以加个判定条件
再是b,当b>=0时,应在前面加个+号,然后同样的,当-0.005<b<0时,四舍五入为+0.00
其他情况正常取小数点后两位输出*/
int main() {
    double r1, p1, r2, p2, A, B;
    cin >> r1 >> p1 >> r2 >> p2;
   A=r1*r2*cos(p1+p2);
    B=r1*r2*sin(p1+p2);
    if (A >=-0.005&& A < 0)
        printf("0.00");
    else
        printf("%.2f", A);
    if(B >= 0)
        printf("+%.2fi", B);
    else if (B >-0.005 && B < 0)
        printf("+0.00i");
    else
        printf("%.2fi", B);
    return 0;
}
///测试点3针对a出现-0.00,测试点2针对b出现-0.00

 技术分享图片

 

 

 

PTA 1051 复数乘法

原文:https://www.cnblogs.com/PacificOcean/p/14642137.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!