算法提高 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\n");
        }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
时间: 2024-10-11 04:08:42

算法提高 6-17复数四则运算的相关文章

蓝桥杯 算法提高 6-17 复数四则运算

算法提高 6-17复数四则运算 时间限制:1.0s   内存限制:512.0MB 设计复数库,实现基本的复数加减乘除运算. 输入时只需分别键入实部和虚部,以空格分割,两个复数之间用运算符分隔:输出时按a+bi的格式在屏幕上打印结果.参加样例输入和样例输出. 注意考虑特殊情况,无法计算时输出字符串"error". 样例输入 2 4 * -3 2 样例输出 -14-8i 样例输入 3 -2 + -1 3 样例输出 2+1i 1 #include<iostream> 2 #inc

*结构-06. 复数四则运算

1 /* 2 * Main.c 3 * F6-结构-06. 复数四则运算 4 * Created on: 2014年8月26日 5 * Author: Boomkeeper 6 ********部分通过*********** 7 */ 8 9 #include <stdio.h> 10 #include <math.h> 11 12 #define EPSINON 0.1 13 14 /* 15 * 复数结构体,c1.c2对应于题目中的c1.c2 16 */ 17 struct c

1168: 零起点学算法75——单数变复数

1168: 零起点学算法75--单数变复数 Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitted: 443  Accepted: 345[Submit][Status][Web Board] Description 英文单词,我们可以按照英语语法规则把单数变成复数.规则如下: (1)以辅音字母y结尾,则加es (2)以s,x,ch,sh结尾,则加es (3)以元音o结尾,则加es (4)其他情况加上s In

蓝桥杯 算法提高 8皇后&#183;改 -- DFS 回溯

  算法提高 8皇后·改   时间限制:1.0s   内存限制:256.0MB 问题描述 规则同8皇后问题,但是棋盘上每格都有一个数字,要求八皇后所在格子数字之和最大. 输入格式 一个8*8的棋盘. 输出格式 所能得到的最大数字和 样例输入 1 2 3 4 5 6 7 89 10 11 12 13 14 15 1617 18 19 20 21 22 23 2425 26 27 28 29 30 31 3233 34 35 36 37 38 39 4041 42 43 44 45 46 47 48

蓝桥 ADV-230 算法提高 12-1三角形 【数学公式】

算法提高 12-1三角形 时间限制:1.0s   内存限制:256.0MB 问题描述 为二维空间中的点设计一个结构体,在此基础上为三角形设计一个结构体.分别设计独立的函数计算三角形的周长.面积.中心和重心.输入三个点,输出这三个点构成的三角形的周长.面积.外心和重心.结果保留小数点后2位数字. 样例输出 与上面的样例输入对应的输出.例: 数据规模和约定 输入数据中每一个数的范围. 例:doule型表示数据. 题目链接: http://lx.lanqiao.cn/problem.page?gpid

7-36 复数四则运算(15 分)

7-36 7-36 复数四则运算(15 分) 本题要求编写程序,计算2个复数的和.差.积.商. 输入格式: 输入在一行中按照a1 b1 a2 b2的格式给出2个复数C1=a1+b1i和C2=a2+b2i的实部和虚部.题目保证C2不为0. 输出格式: 分别在4行中按照(a1+b1i) 运算符 (a2+b2i) = 结果的格式顺序输出2个复数的和.差.积.商,数字精确到小数点后1位.如果结果的实部或者虚部为0,则不输出.如果结果为0,则输出0.0. 输入样例1: 2 3.08 -2.04 5.06

C语言 &#183; 矩阵相乘 &#183; 算法提高

算法提高 矩阵相乘 时间限制:1.0s   内存限制:256.0MB 问题描述 小明最近在为线性代数而头疼,线性代数确实很抽象(也很无聊),可惜他的老师正在讲这矩阵乘法这一段内容. 当然,小明上课打瞌睡也没问题,但线性代数的习题可是很可怕的. 小明希望你来帮他完成这个任务. 现在给你一个ai行aj列的矩阵和一个bi行bj列的矩阵, 要你求出他们相乘的积(当然也是矩阵). (输入数据保证aj=bi,不需要判断) 输入格式 输入文件共有ai+bi+2行,并且输入的所有数为整数(long long范围

算法笔记_163:算法提高 最大乘积(Java)

目录 1 问题描述 2 解决方案   1 问题描述 问题描述 对于n个数,从中取出m个数,如何取使得这m个数的乘积最大呢? 输入格式 第一行一个数表示数据组数 每组输入数据共2行: 第1行给出总共的数字的个数n和要取的数的个数m,1<=n<=m<=15, 第2行依次给出这n个数,其中每个数字的范围满足:a[i]的绝对值小于等于4. 输出格式 每组数据输出1行,为最大的乘积. 样例输入 15 51 2 3 4 2 样例输出 48 2 解决方案 具体代码如下: import java.uti

蓝桥杯 算法提高 道路和航路 满分AC ,SPFA算法的SLF优化,测试数据还是比较水的,貌似没有重边

算法提高 道路和航路 时间限制:1.0s   内存限制:256.0MB 问题描述 农夫约翰正在针对一个新区域的牛奶配送合同进行研究.他打算分发牛奶到T个城镇(标号为1..T),这些城镇通过R条标号为(1..R)的道路和P条标号为(1..P)的航路相连. 每一条公路i或者航路i表示成连接城镇Ai(1<=A_i<=T)和Bi(1<=Bi<=T)代价为Ci.每一条公路,Ci的范围为0<=Ci<=10,000:由于奇怪的运营策略,每一条航路的Ci可能为负的,也就是-10,000

1502131514-蓝桥杯-算法提高 日期计算

算法提高 日期计算 时间限制:1.0s   内存限制:256.0MB 问题描述 已知2011年11月11日是星期五,问YYYY年MM月DD日是星期几?注意考虑闰年的情况.尤其是逢百年不闰,逢400年闰的情况. 输入格式 输入只有一行 YYYY MM DD 输出格式 输出只有一行 W 数据规模和约定 1599 <= YYYY <= 2999 1 <= MM <= 12 1 <= DD <= 31,且确保测试样例中YYYY年MM月DD日是一个合理日期 1 <= W &