zoukankan      html  css  js  c++  java
  • 算法提高 6-17复数四则运算

     算法提高 6-17复数四则运算  
    时间限制:1.0s   内存限制:512.0MB
        
      设计复数库,实现基本的复数加减乘除运算。
      输入时只需分别键入实部和虚部,以空格分割,两个复数之间用运算符分隔;输出时按a+bi的格式在屏幕上打印结果。参加样例输入和样例输出。
      注意考虑特殊情况,无法计算时输出字符串"error"。
    样例输入
    2 4 * -3 2
    样例输出
    -14-8i
    样例输入
    3 -2 + -1 3
    样例输出
    2+1i
    有一组数据就是通不过。
    #include <iostream>
    #include <cstdio>
    #include <vector>
    #include <queue>
    #include <cstring>
    #include <algorithm>
    #include <cstdlib>
    #define for(i,x,n) for(int i=x;i<n;i++)
    #define ll long long int
    #define INF 0x3f3f3f3f
    #define MOD 1000000007
    #define MAX_N 50005
    
    using namespace std;
    
    int main()
    {
        //freopen("data.txt", "r", stdin);
        //freopen("data.out", "w", stdout);
        double a,b,c,d;
        char cc;
        scanf("%lf %lf",&a,&b);
        getchar();
        scanf("%c",&cc);
        scanf("%lf %lf",&c,&d);
        if(cc=='+'){
            if(b+d>0){
                printf("%g+%gi",a+c,b+d);
            }else if(b+d<0){
                printf("%g%gi",a+c,b+d);
            }else if(b+d==0){
                printf("%g",a+c);
            }
        }
        if(cc=='-'){
            if(b-d>0){
                printf("%lf+%lfi",a-c,b-d);
            }else if(b-d<0){
                printf("%lf%lfi",a-c,b-d);
            }else if(b-d==0){
                printf("%lf",a-c);
            }
        }
        if(cc=='*'){
            if(a*c-b*d==0&&a*d+b*c!=0){
                printf("%gi",a*d+b*c);
            }else if(a*d+b*c==0&&a*c+b*d!=0){
                printf("%g",a*c-b*d);
            }else{
                if(a*d+b*c<0){
                    printf("%g%gi",a*c-b*d,a*d+b*c);
                }else{
                    printf("%g+%gi",a*c-b*d,a*d+b*c);
                }
            }
        }
        if(cc=='/'){
            double shi=(a*c+b*d)/(c*c+d*d);
            double xu=(b*c-a*d)/(c*c+d*d);
            if(c==0&&d==0){
                printf("error
    ");
            }else{
                if(xu>0){
                    printf("%g+%gi",shi,xu);
                }
                if(xu==0){
                    printf("%g",shi);
                }else{
                    printf("%g%gi",shi,xu);
                }
            }
        }
        //fclose(stdin);
        //fclose(stdout);
        return 0;
    }
    // 3 3 * 3 3
  • 相关阅读:
    PHP实现微信开发中提现功能(企业付款到用户零钱)
    微信开发企业支付到银行卡PHP
    详解PHP实现定时任务的五种方法
    PHP实现执行定时任务的几种思路详解
    Laravel 去掉访问后面的 “public”
    laravel 中数据库查询结果自动转数组
    怎样才能去掉图片上的二维码
    用PS修改PNG格式图标的颜色
    消除浏览器对input输入框的自动填充
    知网---压缩传感研究现状
  • 原文地址:https://www.cnblogs.com/TWS-YIFEI/p/6384412.html
Copyright © 2011-2022 走看看