ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] ### 题目描述 复数可以写成(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 ### 分析(伪代码和知识点) ### 代码 ``` #include <stdio.h> #include <math.h> int main() { //输入 double R1, P1, R2, P2; scanf("%lf %lf %lf %lf", &R1, &P1, &R2, &P2); //计算和输出 double r1 = R1 * cos(P1), p1 = R1 * sin(P1); double r2 = R2 * cos(P2), p2 = R2 * sin(P2); double A = r1*r2 - p1*p2; double B = r1*p2 + r2*p1; if (fabs(A) < 0.001) { if (fabs(B) < 0.001) { printf("0\n"); } else if(B > 0){ printf("0.00+%.2fi\n", B); } else { printf("0.00%.2fi\n", B); } } else { if (fabs(B) < 0.001) { printf("%.2f+0.00i\n", A); } else if (B > 0) { printf("%.2f+%.2fi\n", A, B); } else { printf("%.2f%.2fi\n", A, B); } } return 0; } ```