当前位置: 代码迷 >> 综合 >> 【PAT乙级】1051 复数乘法
  详细解决方案

【PAT乙级】1051 复数乘法

热度:1   发布时间:2024-02-25 10:32:07.0

题目链接:1051 复数乘法

思路

  • 被后面2个测试点卡了半天,查了一圈其他大佬这么说的
  • 才知道浮点数保留两位小数,意味着“截断”,截断就有可能出现 - 0.00的情况。而截断的话-0.003会变成-0.00而不是+0.00。

代码

#include <iostream>
#include <math.h>
using namespace std;int main(){
    double R1,P1,R2,P2,A,B;cin >> R1 >> P1 >> R2 >> P2;A = R1 * R2 * (cos(P1 + P2));B = R1 * R2 * (sin(P1 + P2));if(A < 0 && A > -0.005) A = 0;if(B < 0 && B > -0.005) B = 0;if(B >= 0)printf("%.2f+%.2fi",A,B);else printf("%.2f%.2fi",A,B);return 0;
}