1051. 复数乘法 (15) PAT乙级真题
来源:互联网 发布:vb.net 添加控件 编辑:程序博客网 时间:2024/05/17 01:35
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位小数。注意:如果B是负数,则应该写成“A-|B|i”的形式。
输入样例:2.3 3.5 5.2 0.4
输出样例:-8.68-8.23i
说真的,我真为这题只值15分感到不值,这是我最后做的15分题,这道题不是说难度有多大,而是能让我们非常“深刻”地了解到浮点型的大小比较。还有就是需要用浮点型时直接选择double,就当自己不知道有float这个东西(真的是怨念颇深)。在乙级里面不知道要被float坑多少次。浮点型的大小比较一定要是做差以后和一个非常小的数比较(具体多少我也记不太清了,反正在小数点后面多加几个0就好了)。下面是我的代码:#include<stdio.h>#include<math.h>int main(void){ double R1,R2,P1,P2; double a,b; scanf("%lf %lf %lf %lf",&R1,&P1,&R2,&P2); a = R1 * R2 * cos(P1) * cos(P2) - R1 * R2 * sin(P1) * sin(P2); b = R1 * R2 * cos(P1) * sin(P2) + R1 * R2 * sin(P1) * cos(P2); if (a + 0.005 >= 0 && a < 0) printf("0.00"); else printf("%.2f",a); if (b >= 0) printf("+%.2fi", b); else if (b + 0.01 >= 0 && b < 0) printf("+0.00i"); else printf("%.2fi", b); return 0;}
阅读全文
0 0
- 1051. 复数乘法 (15)-PAT乙级真题
- 1051. 复数乘法 (15) PAT乙级真题
- PAT乙级 1051. 复数乘法 (15)
- 1051. 复数乘法 (15) PAT 乙级
- PAT乙级 1051. 复数乘法 (15)
- [PAT乙级]1051. 复数乘法 (15)
- PAT乙级1051. 复数乘法 (15)
- pat 乙级 1051. 复数乘法 (15)
- PAT乙级1051. 复数乘法 (15)
- [PAT-乙级]1051.复数乘法
- PAT乙级—1051. 复数乘法 (15)-native
- PAT 乙级 1051. 复数乘法 (15)(得了14)
- PAT 乙级 1051. 复数乘法 (15) Java版
- 1051. 复数乘法 (15) PAT
- PAT--1051. 复数乘法 (15)
- PAT乙级 1051. 复数乘法 (15)--四舍五入带来的正负号细节问题
- PAT乙级练习题B1051. 复数乘法
- Java - PAT- 1051. 复数乘法 (15)
- 在Linux系统中使用ntfs、fat32格式的存储设备
- 添加MyEclipse WebSphere Portal Server支持(二)
- rocketmq-4.0.0 和4.1.0 源码比对分析
- Python实现Pat 1088. Rational Arithmetic (20)
- padas数据结构:DataFrame
- 1051. 复数乘法 (15) PAT乙级真题
- jQuery+js+ajax用接口添加数据
- Python3.x 正则表达式
- eclipse添加约束文件
- Android实现计时与倒计时的几种方法
- mysql安装error:the security setting could not be applied
- expect spawn、linux expect 用法
- Samba案例分析
- Ajax