1051 复数乘法

Posted keep23456

tags:

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

这道题是所有题目中最坑的,可能是之前出题不严谨,也可能是我理解错了题意。

注意点:实部和虚部均保留 2 位小数,并不是指四舍五入后,保留两位小数,而是从小数点后面的第三位开始,直接抹去后面所有的数,此谓保留两位小数。例如,0.008保留 2 位小数后就是0.00。

#include<iostream>
#include<cmath>
#include<cstdlib>
using namespace std;

int main() {
    double r1,p1,r2,p2;
    cin>>r1>>p1>>r2>>p2;
    double a1,b1,a2,b2;
    a1 = r1*cos(p1);
    b1 = r1*sin(p1);
    a2 = r2*cos(p2);
    b2 = r2*sin(p2);
    double A,B;
    A = a1*a2 - b1*b2;
    B = a1*b2 + b1*a2;
    if(fabs(A) < 0.01) A = 0.00;//保留两位小数
    if(fabs(B) < 0.01) B = 0.00;//保留两位小数
    printf("%.2f",A);
    if(B >= 0) printf("+"); //整数要记得输出 加号
    printf("%.2fi",B);
    return 0;
}

技术图片

 

 

 

实部和虚部均保留 2 位小数

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

1051. 复数乘法 (15)

1051. 复数乘法 (15)

PAT 1051. 复数乘法

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

B1051 复数乘法(15 分)

1051 复数乘法 (15分)