zoukankan      html  css  js  c++  java
  • PAT乙级1051-----复数乘法 (15分)

    1051 复数乘法 (15分)

    复数可以写成 ( 的常规形式,其中 A 是实部,B 是虚部,i 是虚数单位,满足 1;也可以写成极坐标下的指数形式 (,其中 R 是复数模,P 是辐角,i 是虚数单位,其等价于三角形式 (。

    现给定两个复数的 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

    思路:
    1.用double类型,且要注意保留的小数位数(例如:-0.001保留两位会变成-0.00)
    2.注意正数或0要带+号
    3.若用到取绝对值要用fabs()而并不是abs()

    首次通过代码:
     1 #include<stdio.h>
     2 #include<math.h>
     3 #include<stdlib.h>
     4 
     5 int main(){
     6    double r1,p1,r2,p2;
     7    double a,b;
     8    scanf("%lf %lf %lf %lf",&r1,&p1,&r2,&p2);
     9    double a1,b1,a2,b2;
    10    a1=r1*cos(p1);//实部1
    11    b1=r1*sin(p1);//虚部1
    12    a2=r2*cos(p2);//实部2
    13    b2=r2*sin(p2);//虚部2
    14    a=a1*a2-b1*b2;
    15    b=a1*b2+a2*b1;
    16 
    17    if(fabs(a)<0.01&&a<0) 
    18     printf("0.00");
    19     else 
    20    printf("%.2f",a);
    21     if(b>=0) printf("+%.2fi",b);
    22     else {
    23         if(fabs(b)<0.01) 
    24         printf("+0.00i");
    25         else 
    26         printf("%.2fi",b);
    27     }
    28    
    29    return 0;
    30 }
    View Code
     
  • 相关阅读:
    selenium浏览器操作以及对象定位
    Selenium简介以及selenium环境搭建
    JMeter测试组件
    JMeter基础:元件的顺序
    Appium
    Appium 设备操作API(根据坐标滑动)
    关于接口测试的总结
    五种方式来消除你对测试文档的仇视
    bs架构与cs架构的区别
    Eclipse的错误: 找不到或无法加载主类 10种解决大法!!!!!
  • 原文地址:https://www.cnblogs.com/a982961222/p/12372028.html
Copyright © 2011-2022 走看看