1051 复数乘法 (15 分)借鉴C++ PAT (Basic Level) Practice
1051 复数乘法 (15 分)
输出格式:
在一行中按照 A+Bi 的格式输出两数乘积的常规形式,实部和虚部均保留 2 位小数。注意:如果 B 是负数,则应该写成 A-|B|i 的形式。
输入样例:
2.3 3.5 5.2 0.4
输出样例:
-8.68-8.23i
主要难度在于对复数的认识。
R1*(cos(P1)+i*sin(P1))*R2*(cos(P2)+i*sin(P2))
=R1*R2*(cos(P1)*cos(P2)+i*cos(P1)*sin(P2)+i*sin(P1)*cos(P2)+i*i*sin(P1)*sin(P2))
=R1*R2*(cos(P1)*cos(P2)+i*i*sin(P1)*sin(P2)+(cos(P1)*sin(P2)+sin(P1)*cos(P2))*i)//因为i*i=-1
=R1*R2*(cos(P1)*cos(P2)-sin(P1)*sin(P2)+(cos(P1)*sin(P2)+sin(P1)*cos(P2))*i)
=R1*R2*(cos(P1+P2)+sin(P1+P2)*i)
=R1*R2*cos(P1+P2)+R1*R2*sin(P1+P2)*i
所以
A+B*i = R1*R2*cos(P1+P2)+R1*R2*sin(P1+P2)*i
以至于
## A=R1*R2*cos(P1+P2)
## B=R1*R2*sin(P1+P2)*i
cos与sin头文件:#include < cmath> 。
注意点:
如果 B 是负数,则应该写成 A-|B|i 的形式
可以将输出格式改成
printf("%0.2f-%0.2fi",a,fabs(b));
因为实部和虚部保留2位小数,所以A、B绝对值是<0.01的数,必须要把它们设置为零,否则测试点3,4无法通过。
if(A<0.01&&A>-0.01){A=0;
}
if(B<0.01&&B>-0.01){B=0;
}
代码:
#include<iostream>
#include<stdio.h>
#include<cmath>
using namespace std;
int main(){double epsilon=0.01;double R1,P1,R2,P2;cin>>R1>>P1>>R2>>P2;double A=R1*R2*cos(P1+P2);double B=R1*R2*sin(P1+P2);if(A<epsilon&&A>-epsilon){A=0; }if(B<epsilon&&B>-epsilon){B=0;}if(B<0){printf("%.2lf-%.2lfi",A,fabs(B)); }else {printf("%.2lf+%.2lfi",A,B);}//printf("%.2f",2.3*5.2*cos(3.5+0.4));//printf("%.2f",2.3*5.2*sin(3.5+0.4));//cout<<2.3*5.2*cos(3.5+0.4)<<endl;//cout<<2.3*5.2*sin(3.5+0.4)<<endl;return 0;
}
1051 复数乘法 (15 分)借鉴C++ PAT (Basic Level) Practice相关推荐
- pat题解java,1039 到底买不买 (20分) Java题解 PAT (Basic Level) Practice (中文)- 巧妙开大数组减少代码量...
1039 到底买不买 (20分) 原题链接:传送门 一.题目: 输入样例 1: ppRYYGrrYBR2258 YrR8RrY 输出样例 1: Yes 8 输入样例 2: ppRYYGrrYB225 ...
- PAT (Basic Level) Practice (中文)1058 选择题 (20 分)
PAT (Basic Level) Practice (中文)1058 选择题 (20 分) 文章目录 PAT (Basic Level) Practice (中文)1058 选择题 (20 分) 题 ...
- C++学习之路 | PTA乙级—— 1051 复数乘法 (15 分)(精简)
1051 复数乘法 (15 分) 复数可以写成 (A+Bi) 的常规形式,其中 A 是实部,B 是虚部,i 是虚数单位,满足 i 2 =−1:也可以写成极坐标下的指数形式 (R×e (Pi) ...
- 1001 害死人不偿命的(3n+1)猜想 (15分) PAT (Basic Level) Practice (中文)C语言版
PAT (Basic Level) Practice (中文) 1001 害死人不偿命的(3n+1)猜想 (15分) 卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一 ...
- PTA 1051 复数乘法 (15 分) C++实现
1051 复数乘法 (15 分) 复数可以写成 (A+Bi) 的常规形式,其中 A 是实部,B 是虚部,i 是虚数单位,满足 i^2 = −1:也可以写成极坐标下的指数形式 (R×e(Pi) ),其中 ...
- PAT (Basic Level) Practice (中文)1070 结绳 (25 分) 凌宸1642
PAT (Basic Level) Practice (中文)1070 结绳 (25 分) 凌宸1642 题目描述 给定一段一段的绳子,你需要把它们串成一条绳.每次串连的时候,是把两段绳子对折,再如下 ...
- PAT (Basic Level) Practice (中文)1095 解码PAT准考证 (25 分)
PAT (Basic Level) Practice (中文)1095 解码PAT准考证 (25 分) PAT 准考证号由 4 部分组成: 第 1 位是级别,即T代表顶级:A代表甲级:B代表乙级: 第 ...
- PAT (Basic Level) Practice (中文)答案合集
准备复试专用,目标刷完全部中文题! 1001 害死人不偿命的(3n+1)猜想 (15 分) 卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把 ...
- (Python) PAT(Basic Level) Practice 刷题笔记(34-66)
我的代码仅能解题,效率不高也不够简洁,欢迎师傅们提出建议,能让我加以改进. Practice 1036 跟奥巴马一起编程 (15 分) 1037 在霍格沃茨找零钱 (20 分) 1038 统计同成绩学 ...
最新文章
- 机器视觉学习笔记(4)——单目摄像机标定参数说明
- python 画三维函数图-如何用Matplotlib 画三维图的示例代码
- 如何使用vscode安装和调试Java程序
- LeetCode—207. 课程表
- java修改pdf内容流_java – 在PDFBox中,如何更改PDRectangle对象的原点(0,0)?
- golang web开发获取get、post、cookie参数
- struts2学到屎挫死-学习笔记(4)
- 聚宽 get_price 多个股票数据_上证指数(000001)股票历史数据,下载上证指数(000001历史数据_股票股市历史数据下载股票数据网...
- Linux 系统-----vim命令详解
- 产品经理工具之软件篇
- linux下串口(serial)和串口驱动
- OpenCV-Python教程:色彩空间变换(cvtColor)
- JAVA知识体系之分布式篇(四)——Kafka
- Java用Tessdata做OCR图片文字识别
- PDF打印内容缺失问题解决办法
- 关于小程序区服登录账号换模拟器登录的操作
- Fuzzing及Sulley简介
- 2022 年(23届)计算机保研经验分享(北航、东南、西工大、哈工大、中山等)
- 【毕业设计】LSTM预测算法(股票预测 天气预测 房价预测)
- 《曼昆经济学原理》读书笔记
热门文章
- call()、apply()、bind()的使用和区别以及使用场景
- NVIDIA DPU — 安装部署
- json转为tfrecord格式文件怎么转_Origin教程|定向提取所需帧图(视频转图片)
- 图扑数字孪生空冷机组,助推智慧电厂拥抱“双碳”
- 赖美云的认证照_赖美云《不渺小》获千万人气单曲认证 热度口碑齐爆棚
- 《修炼忍辱44招》能忍,会忍,善忍—不愠不火是一种善于忍耐的处世之道
- 高手不用Redis内存数据库一
- cocos creater 实现消除星星小游戏
- 瑞柏匡丞_步步惊心的大数据
- 两台计算机只换硬盘可以吗,客户带电脑来升级,两台变成一台,客户:一台电脑就换一个硬盘?...