1051 复数乘法 (15 分)
题目链接
https://pintia.cn/problem-sets/994805260223102976/problems/994805274496319488
题解
额,没想这么细,看了别人的解释,原来取0的时候要这样考虑…
最后 2 3 测试点问题
就是对0.00这个点的A B的取法,
绝对值小于0.005,取到的就是0.00(保留两位)
+0.005就是0.01,-0.005就是-0.01,
所以正数是>=0.005 负数<=-0.005,0.00介于两者之间,其他位数也可以参考
#include <bits/stdc++.h>
int main()
{
double r1,p1,r2,p2;
scanf("%lf %lf %lf %lf",&r1,&p1,&r2,&p2);
double r=r1*r2,p=p1+p2;
double a=r*cos(p),b=r*sin(p);
//实部
if(a>=-0.005&&a<=0.005)
printf("0.00");
else
printf("%.2lf",a);
//虚部
if(b<=-0.005)
printf("%.2lfi\n",b);
else if(b>-0.005&&b<0.005)
printf("+0.00i\n");
else
printf("+%.2lfi\n",b);
return 0;
}
参考
https://blog.csdn.net/AXKDD6555/article/details/90030599?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_title~default-0.pc_relevant_baidujshouduan&spm=1001.2101.3001.4242
https://blog.csdn.net/qq_44061866/article/details/108589025?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-4.pc_relevant_baidujshouduan&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-4.pc_relevant_baidujshouduan