PAT1051 复数乘法 (15 分)
题目
算法
1、读入R1、P1、R2、P2。
2、A=(R1*R2)cos(P1+P2),B=(R1*R2)sin(P1+P2)。
3、如果A的绝对值小于0.01,A=0。
4、如果B的绝对值小于0.01,B=0。
5、如果B小于零,输出A-|B|i,否则B输出A+Bi。输出时,每个数字保留两位。
代码
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
//输入
double r1, p1, r2, p2;
cin >> r1 >> p1 >> r2 >> p2;
//计算
double A, B;
A = r1 * r2*cos(p1 + p2);
B = r1 * r2*sin(p1 + p2);
//输出
if (fabs(B) < 0.01)
{
B = 0;
}
if (fabs(A) < 0.01)
{
A = 0;
}
if (B < 0)
{
printf("%.2lf-%.2lfi", A, fabs(B));
}
else printf("%.2lf+%.2lfi", A, B);
return 0;
}