码迷,mamicode.com
首页 > 其他好文 > 详细

1051 复数乘法

时间:2020-02-22 13:48:08      阅读:52      评论:0      收藏:0      [点我收藏+]

标签:ace   class   复数   printf   main   开始   name   iostream   alt   

这道题是所有题目中最坑的,可能是之前出题不严谨,也可能是我理解错了题意。

注意点:实部和虚部均保留 2 位小数,并不是指四舍五入后,保留两位小数,而是从小数点后面的第三位开始,直接抹去后面所有的数,此谓保留两位小数。例如,0.008保留 2 位小数后就是0.00。

#include<iostream>
#include<cmath>
#include<cstdlib>
using namespace std;

int main() {
    double r1,p1,r2,p2;
    cin>>r1>>p1>>r2>>p2;
    double a1,b1,a2,b2;
    a1 = r1*cos(p1);
    b1 = r1*sin(p1);
    a2 = r2*cos(p2);
    b2 = r2*sin(p2);
    double A,B;
    A = a1*a2 - b1*b2;
    B = a1*b2 + b1*a2;
    if(fabs(A) < 0.01) A = 0.00;//保留两位小数
    if(fabs(B) < 0.01) B = 0.00;//保留两位小数
    printf("%.2f",A);
    if(B >= 0) printf("+"); //整数要记得输出 加号
    printf("%.2fi",B);
    return 0;
}

技术图片

 

 

 

实部和虚部均保留 2 位小数

1051 复数乘法

标签:ace   class   复数   printf   main   开始   name   iostream   alt   

原文地址:https://www.cnblogs.com/keep23456/p/12344856.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!