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;
}

猜你喜欢

转载自blog.csdn.net/sinat_42483341/article/details/87975296