• PAT 1051 复数乘法


    https://pintia.cn/problem-sets/994805260223102976/problems/994805274496319488

    复数可以写成(A + Bi)的常规形式,其中A是实部,B是虚部,i是虚数单位,满足i^2^ = -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 <bits/stdc++.h>
    
    using namespace std;
    
    float eps = 1e-8;
    
    int main()
    {
        float R1,P1,R2,P2;
        scanf("%f %f %f %f",&R1,&P1,&R2,&P2);
        float a1=0,a2=0,b1=0,b2=0;
        float A=0,B=0;
        a1=cos(P1)*R1;
        a2=cos(P2)*R2;
        b1=sin(P1)*R1;
        b2=sin(P2)*R2;
        A=a1*a2-b1*b2;
        B=a1*b2+a2*b1;
    
        if(fabs(A) < eps && A >0) {
          if(B < 0) {
           // if(fabs(B) < 0.5) while(1) {}
                printf("0.00-%.2fi
    ", fabs(B) - 0.01);
          }
          else printf("0.00+%.2fi
    ", B);
          return 0;
        }
    
        if(B < 0) {
          printf("%.2f-%.2fi
    ",A,fabs(B));
        }
        else
            printf("%.2f+%.2fi
    ",A,B);
        return 0;
    }
    

      

  • 相关阅读:
    C++内存管理
    GitHub 简单用法
    Tembin
    git
    js 插件使用总结
    cas sso
    Redis实战
    全面分析 Spring 的编程式事务管理及声明式事务管理
    mybatis
    b2b
  • 原文地址:https://www.cnblogs.com/zlrrrr/p/9364062.html
Copyright © 2020-2023  润新知