1051 复数乘法 (15 分)

题目:


思路:

  • 调用math函数库即可计算。另外需要注意若实部和虚部小于0.005且为负数时保留两位小数得到的是-0.00,直接上会wrong answer,所以需要将保留两位小数得到的结果为0的数去符号。

代码:

 1 #include <iostream>
 2 #include <cmath>
 3 using namespace std;
 4
 5 int main()
 6 {
 7     double r1, r2, p1, p2;
 8     cin >> r1 >> p1 >> r2 >> p2;
 9     double fact1 = r1 * r2 * ( cos(p1) * cos(p2) - sin(p1) * sin(p2) );
10     double fact2 = r1 * r2 * ( cos(p1) * sin(p2) + sin(p1) * cos(p2) );
11     if(fabs(fact1) < 0.005)
12     {
13         fact1 = 0;
14     }
15     if(fabs(fact2) < 0.005)
16     {
17         fact2 = 0;
18     }
19     if(fact2 < 0)
20         printf("%.2lf%.2lfi\n",fact1, fact2);
21     else
22         printf("%.2lf+%.2lfi\n",fact1, fact2);
23     return 0;
24 }

总结:

  • 要考虑0的符号。

原文地址:https://www.cnblogs.com/Anber82/p/11133432.html

时间: 2024-10-12 07:08:08

1051 复数乘法 (15 分)的相关文章

1051 复数乘法 (15分)

复数可以写成 ( 的常规形式,其中 A 是实部,B 是虚部,i 是虚数单位,满足 1:也可以写成极坐标下的指数形式 (,其中 R 是复数模,P 是辐角,i 是虚数单位,其等价于三角形式 (. 现给定两个复数的 R 和 P,要求输出两数乘积的常规形式. 输入格式: 输入在一行中依次给出两个复数的 R?1??, P?1??, R?2??, P?2??,数字间以空格分隔. 输出格式: 在一行中按照 A+Bi 的格式输出两数乘积的常规形式,实部和虚部均保留 2 位小数.注意:如果 B 是负数,则应该写成

PAT Basic 1051 复数乘法 (15 分)

复数可以写成 ( 的常规形式,其中 A 是实部,B 是虚部,i 是虚数单位,满足 1:也可以写成极坐标下的指数形式 (,其中 R 是复数模,P 是辐角,i 是虚数单位,其等价于三角形式 (. 现给定两个复数的 R 和 P,要求输出两数乘积的常规形式. 输入格式: 输入在一行中依次给出两个复数的 R?1??, P?1??, R?2??, P?2??,数字间以空格分隔. 输出格式: 在一行中按照 A+Bi 的格式输出两数乘积的常规形式,实部和虚部均保留 2 位小数.注意:如果 B 是负数,则应该写成

1051. 复数乘法 (15)

1051. 复数乘法 (15) 复数可以写成(A + Bi)的常规形式,其中A是实部,B是虚部,i是虚数单位,满足i2 = -1:也可以写成极坐标下的指数形式(R*e(Pi)),其中R是复数模,P是辐角,i是虚数单位,其等价于三角形式 R(cos(P) + isin(P)). 现给定两个复数的R和P,要求输出两数乘积的常规形式. 输入格式: 输入在一行中依次给出两个复数的R1, P1, R2, P2,数字间以空格分隔. 输出格式: 在一行中按照"A+Bi"的格式输出两数乘积的常规形式,

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

1051. 复数乘法 (15) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 复数可以写成(A + Bi)的常规形式,其中A是实部,B是虚部,i是虚数单位,满足i2 = -1:也可以写成极坐标下的指数形式(R*e(Pi)),其中R是复数模,P是辐角,i是虚数单位,其等价于三角形式(R(cos(P) + isin(P)). 现给定两个复数的R和P,要求输出两数乘积的常规形式. 输入格式: 输入在一行中依次给出两

PAT 1051. 复数乘法 (15)

复数可以写成(A + Bi)的常规形式,其中A是实部,B是虚部,i是虚数单位,满足i2 = -1:也可以写成极坐标下的指数形式(R*e(Pi)),其中R是复数模,P是辐角,i是虚数单位,其等价于三角形式 R(cos(P) + isin(P)). 现给定两个复数的R和P,要求输出两数乘积的常规形式. 输入格式: 输入在一行中依次给出两个复数的R1, P1, R2, P2,数字间以空格分隔. 输出格式: 在一行中按照"A+Bi"的格式输出两数乘积的常规形式,实部和虚部均保留2位小数.注意:

PAT乙级15分题易错题总结

PAT乙级15分题易错题总结 B1026 程序运行时间 输入格式: 输入在一行中顺序给出 2 个整数 C1 和 C2.注意两次获得的时钟打点数肯定不相同,即 C1 < C2,并且取值在 [0,107]. 输出格式: 在一行中输出被测函数运行的时间.运行时间必须按照 hh:mm:ss(即2位的 时:分:秒)格式输出:不足 1 秒的时间四舍五入到秒. 输入样例: 123 4577973 输出样例: 12:42:59 易忽略细节 在计算时,未能正确四舍五入,除100以后余数只要不为零都进位1.//er

pta 数据结构 习题2.4 递增的整数序列链表的插入(15 分)

习题2.4 递增的整数序列链表的插入(15 分) 本题要求实现一个函数,在递增的整数序列链表(带头结点)中插入一个新整数,并保持该序列的有序性. 函数接口定义: List Insert( List L, ElementType X ); 其中List结构定义如下: typedef struct Node *PtrToNode; struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Next; /* 指向下一个结点的指针 */ }; type

PAT-JAVA-5-2 然后是几点 (15分)

5-2 然后是几点   (15分) 有时候人们用四位数字表示一个时间,比如1106表示11点零6分.现在,你的程序要根据起始时间和流逝的时间计算出终止时间. 读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字.当小时为个位数时,没有前导的零,即5点30分表示为530.注意,第二个数字表示的分钟数可能超过60,也可能是负数. 输入格式: 输入在一行中给出2个整数,分别是四位数字表示的起始时间.以及流逝的分钟数,其间以

PAT 1051. 复数乘法

PAT 1051. 复数乘法 复数可以写成(A + Bi)的常规形式,其中A是实部,B是虚部,i是虚数单位,满足i2 = -1:也可以写成极坐标下的指数形式(R*e(Pi)),其中R是复数模,P是辐角,i是虚数单位,其等价于三角形式 R(cos(P) + isin(P)). 现给定两个复数的R和P,要求输出两数乘积的常规形式. 输入格式: 输入在一行中依次给出两个复数的R1, P1, R2, P2,数字间以空格分隔. 输出格式: 在一行中按照"A+Bi"的格式输出两数乘积的常规形式,实