PAT B1051 复数乘法
输入样例:
2.3 3.5 5.2 0.4
输出样例:
-8.68-8.23i
解题思路:
1、读入R1、P1、R2、P2。
2、A=(R1*R2)cos(P1+P2),B=(R1*R2)sin(P1+P2)。
3、因为保留两位小数,所以如果A的绝对值小于0.01,A=0;如果B的绝对值小于0.01,B=0。
4、如果B小于零,输出A-|B|i,否则B输出A+Bi。输出时,每个数字保留两位。
对于A和B的解释:
#include<iostream> #include<cmath> using namespace std; int main () { double R1, P1, R2, P2; cin >> R1 >> P1 >> R2 >> P2; double A, B; //分别计算A和B的值 A = R1*R2*cos ( P1 + P2 ); B = R1*R2*sin ( P1 + P2 ); //如果A或者B小于0.01,在保留两位小数的情况下,应该舍去 if ( fabs ( A ) < 0.01 ) A = 0; if ( fabs ( B ) < 0.01 ) B = 0; //B是负数的情况 if ( B < 0 ) printf ( "%.2lf-%.2lfi", A, fabs ( B ) ); else printf ( "%.2lf+%.2lfi", A, B ); system ( "pause" ); return 0; }
唯有热爱方能抵御岁月漫长。