PAT B1051 复数乘法

输入样例:

2.3 3.5 5.2 0.4

输出样例:

-8.68-8.23i

解题思路:

  1、读入R1、P1、R2、P2。

  2、A=(R1*R2)cos(P1+P2),B=(R1*R2)sin(P1+P2)。

  3、因为保留两位小数,所以如果A的绝对值小于0.01,A=0;如果B的绝对值小于0.01,B=0。

    4、如果B小于零,输出A-|B|i,否则B输出A+Bi。输出时,每个数字保留两位。

对于A和B的解释:

#include<iostream>
#include<cmath>

using namespace std;

int main () {
    double R1, P1, R2, P2;
    cin >> R1 >> P1 >> R2 >> P2;

    double A, B;
    //分别计算A和B的值
    A = R1*R2*cos ( P1 + P2 );
    B = R1*R2*sin ( P1 + P2 );

    //如果A或者B小于0.01,在保留两位小数的情况下,应该舍去
    if ( fabs ( A ) < 0.01 ) A = 0;
    if ( fabs ( B ) < 0.01 ) B = 0;

    //B是负数的情况
    if ( B < 0 ) printf ( "%.2lf-%.2lfi", A, fabs ( B ) );
    else printf ( "%.2lf+%.2lfi", A, B );

    system ( "pause" );
    return 0;
}
原文地址:https://www.cnblogs.com/syq816/p/12644034.html