PAT (Basic Level) Practice 乙级1051-1055
发布日期:2025-05-01 22:55:19 浏览次数:14 分类:精选文章

本文共 877 字,大约阅读时间需要 2 分钟。

复数乘法的实现

复数可以写成 (A+Bi) 的常规形式,其中 A 是实部,B 是虚部,i 是虚数单位,满足 i²=-1;也可以写成极坐标下的指数形式 (R×e^(iP)),其中 R 是复数模,P 是辐角。现给定两个复数的 R 和 P,要求输出两数乘积的常规形式。

输入格式:输入在一行中依次给出两个复数的 R1, P1, R2, P2,数字间以空格分隔。

输出格式:在一行中按照 A+Bi 的格式输出两数乘积的常规形式,实部和虚部均保留 2 位小数。注意:如果 B 是负数,则应该写成 A-|B|i 的形式。

代码实现:

#include 
#include
#include
#include
#include
#define ll long longusing namespace std;int main() { double r1, p1, r2, p2; cin >> r1 >> p1 >> r2 >> p2; double p_total = p1 + p2; double a = r1 * r2 * cos(p_total); double b = r1 * r2 * sin(p_total); // 处理小数点精度问题 if (fabs(b) < 0.01) { b = 0; } if (fabs(a) < 0.01) { a = 0; } if (b < 0) { printf("%.2lf-%.2lfi", a, -b); } else { printf("%.2lf+%.2lfi", a, b); } return 0;}

输入样例:2.3 3.5 5.2 0.4

输出样例:-8.68-8.23i

上一篇:PAT (Basic Level) Practise - 写出这个数
下一篇:SparkSql的元数据

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2026年06月14日 10时14分58秒