PTA乙级1051,复数乘法

这篇博客主要探讨了PTA乙级问题1051,强调了在处理复数乘法时的一个关键细节。作者指出,当实部或虚部接近0但略小于0时,如-0.00001,使用printf("%.2f", a)进行输出可能会错误地显示为"-0.00",而实际应显示为"0.00"。这个问题需要特别注意和处理。" 43736121,1203005,iOS集成百度地图API获取GPS定位教程,"['IOS开发', '地图服务', 'GPS定位', '百度API']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

歪:我半天没有读懂题目是啥意思
注意:当A或者B小于0但是大于-0.005(比如-0.00001)时候,如果用printf("%.2f",a)函数输出,会输出“-0.00”这样的结果,事实上应该输出“0.00”,这一点要特殊处理(why?)

    #include<bits/stdc++.h>
    using namespace std;
    
    int main(){
        double r1,p1,r2,p2,a,b;
        cin>>r1>>p1>>r2>>p2;
    
        a=r1*r2*cos(p1)*cos(p2)-r1*r2*sin(p1)*sin(p2);
        b=r1*r2*cos(p1)*sin(p2)+r1*r2*sin(p1)*cos(p2);
    
        if(a<0&&a>=-0.005)
            printf("0.00");
        else
            printf("%.2f",a);
        if(b>=0)
            printf("+%.2fi",b);
        else if(b>=-0.005&&b<0)
            printf("+0.00i");
        else
            printf("%.2fi",b);
    
        return 0;
    
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值