1051 复数乘法 (15 分)

◇◆丶佛笑我妖孽 提交于 2019-12-01 05:58:45

复数可以写成 (A+Bi) 的常规形式,其中 A 是实部,B 是虚部,i 是虚数单位,满足 i​2​​=−1;也可以写成极坐标下的指数形式 (R×e​(Pi)​​),其中 R 是复数模,P 是辐角,i 是虚数单位,其等价于三角形式 (R(cos(P)+isin(P))。

现给定两个复数的 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

分析:

1.这道题会用到一些数学知识;

 

 2.输入输出的时候最好用scanft,printf,不容易出错。

AC代码:

 // B51.cpp : Defines the entry point for the console application. //  #include <iostream> #include <stdio.h> #include <math.h> # define EPSILON 0.01  using namespace std; int main() { 	double r1, r2, p1, p2; 	double a, b; 	scanf("%lf %lf %lf %lf", &r1, &p1, &r2, &p2); 	a = (r1*r2)*cos(p1 + p2); 	b = (r1*r2)*sin(p1 + p2); 	if (fabs(a) < EPSILON) 	{ 		a = 0; 	} 	if (fabs(b) < EPSILON) 	{ 		b = 0; 	} 	if (b < 0) 	{ 		printf("%.2f-%.2lfi", a, fabs(b)); 	} 	else 	{ 		printf("%.2f+%.2lfi", a, fabs(b)); 	} 	return 0; }  

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!