队友在比赛时A掉的。吊吊吊!!!

主要考虑这些情况吧|||

案例:

/*
3i i
-3 i
-1-i 1+i
i 1
-1-i -1-i
*/
-3
-3i
-2i
i
2i
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <algorithm>
#include <iostream>
#include <queue>
using namespace std;
#define MAX 1010
#define INF 0x3f3f3f
int n,m;
int sum1,sum2;
void display(int a,int b,int c,int d)
{
sum1=a*c-b*d;
sum2=a*d+b*c;
// printf("%d %d %d %d\n",a,b,c,d);
}
int main()
{
while(1)
{
int i,j,k,t;
char s1[MAX],s2[MAX];
int a,b,c,d;
a=b=c=d=0;
scanf("%s%s",s1,s2);
int n1=strlen(s1);
int n2=strlen(s2);
int f1=0,f2=0;
for(i=0;i<n1;i++)
{
if(s1[i]=='i')
f1=1;
}
if(f1)
{
int cont=0;
for(i=0;i<n1;i++)
{
if(s1[i]=='-'||s1[i]=='+')
cont++;
}
if(cont==0)
{
for(i=0;i<n1-1;i++)
b=b*10+s1[i]-'0';
if(n1==1)
b=1;
}
if(cont==2)
{
for(i=1;i<n1-1;i++)
{
if(s1[i]=='-'||s1[i]=='+')
break;
a=a*10+s1[i]-'0';
}
a=-a;
k=i;
for(++i;i<n1-1;i++)
{
b=b*10+s1[i]-'0';
}
if(n1-k==2)
b=1;
// printf("%d\n",k);
if(s1[k]=='-')
b=-b;
}
if(cont==1)
{
if(s1[0]=='-')
{
for(i=1;i<n1-1;i++)
b=b*10+s1[i]-'0';
b=-b;
if(n1==2)
b=-1;
}
else
{
for(i=0;i<n1;i++)
{
if(s1[i]=='-'||s1[i]=='+')
break;
a=a*10+s1[i]-'0';
}
k=i;
for(++i;i<n1-1;i++)
{
b=b*10+s1[i]-'0';
}
if(n1-k==2)
b=1;
if(s1[k]=='-')
b=-b;
}
}
}
else
{
if(n1==1)
a=s1[0]-'0';
else if(s1[0]=='-')
{
for(i=1;i<n1;i++)
a=a*10+s1[i]-'0';
a=-a;
}
else
{
for(i=1;i<n1;i++)
a=a*10+s1[i]-'0';
}
b=0;
}
for(i=0;i<n2;i++)
{
if(s2[i]=='i')
f2=1;
}
if(f2)
{
int cont=0;
for(i=0;i<n2;i++)
{
if(s2[i]=='-'||s2[i]=='+')
cont++;
}
if(cont==0)
{
for(i=0;i<n2-1;i++)
d=d*10+s2[i]-'0';
if(n2==1)
d=1;
}
if(cont==2)
{
for(i=1;i<n2;i++)
{
if(s2[i]=='-'||s2[i]=='+')
break;
c=c*10+s2[i]-'0';
}
c=-c;
k=i;
for(++i;i<n2-1;i++)
{
d=d*10+s2[i]-'0';
}
if(n2-k==2)
d=1;
if(s2[k]=='-')
d=-d;
}
if(cont==1)
{
if(s2[0]=='-')
{
for(i=1;i<n2-1;i++)
d=d*10+s2[i]-'0';
d=-d;
if(n2==2)
d=-1;
}
else
{
for(i=0;i<n2;i++)
{
if(s2[i]=='-'||s2[i]=='+')
break;
c=c*10+s2[i]-'0';
}
k=i;
for(++i;i<n2-1;i++)
{
d=d*10+s2[i]-'0';
}
if(n2-k==2)
d=1;
if(s2[k]=='-')
d=-d;
}
}
}
else
{
if(n2==1)
c=s2[0]-'0';
else if(s2[0]=='-')
{
for(i=1;i<n2;i++)
c=c*10+s2[i]-'0';
c=-c;
}
else
{
for(i=1;i<n2;i++)
c=c*10+s2[i]-'0';
}
d=0;
}
display(a,b,c,d);
if(sum1==0&&sum2==0)
printf("0\n");
else if(sum1==0&&sum2!=0)
{
if(sum2==1)
printf("i\n");
else if(sum2==-1)
printf("-i\n");
else
printf("%di\n",sum2);
}
else if(sum1!=0&&sum2==0)
printf("%d\n",sum1);
else if(sum1!=0&&sum2!=0)
{
if(sum2>0)
{
if(sum2!=1)
printf("%d+%di\n",sum1,sum2);
else
printf("%d+i\n",sum1);
}
else
{
if(sum2!=-1)
printf("%d%di\n",sum1,sum2);
else
printf("%d-i\n",sum1);
}
}
}
return 0;
}

PTA【复数相乘】的更多相关文章

  1. [LeetCode] Complex Number Multiplication 复数相乘

    Given two strings representing two complex numbers. You need to return a string representing their m ...

  2. PTA 复数四则运算

    本题要求编写程序,计算2个复数的和.差.积.商. 输入格式: 输入在一行中按照a1 b1 a2 b2的格式给出2个复数C1=a1+b1i和C2=a2+b2i的实部和虚部.题目保证C2不为0. 输出格式 ...

  3. C++ 实验 使用重载运算符实现一个复数类

    实验目的: 1.掌握用成员函数重载运算符的方法 2.掌握用友元函数重载运算符的方法 实验要求: 1.定义一个复数类,描述一些必须的成员函数,如:构造函数,析构函数,赋值函数,返回数据成员值的函数等. ...

  4. BZOJ 3621: 我想那还真是令人高兴啊 计算几何 复数

    https://www.lydsy.com/JudgeOnline/problem.php?id=3621 给定两个三角形,其中一个可以通过以某点为中心旋转并放缩的方式得到另一个,求这个中心 http ...

  5. 定义一个复数(z=x+iy)类Complex,包含: 两个属性:实部x和虚部y 默认构造函数 Complex(),设置x=0,y=0 构造函数:Complex(int i,int j) 显示复数的方法:showComp()将其显示为如: 5+8i或5-8i 的形式。 求两个复数的和的方法:(参数是两个复数类对象,返回值是复数类对象)public Complex addComp(Compl

    因标题框有限,题目未显示完整,以下再放一份: 定义一个复数(z=x+iy)类Complex,包含: 两个属性:实部x和虚部y 默认构造函数 Complex(),设置x=0,y=0 构造函数:Compl ...

  6. 多项式相乘快速算法原理及相应C代码实现---用到fft

    最近认真研究了一下算法导论里面的多项式乘法的快速计算问题,主要是用到了FFT,自己也实现了一下,总结如下. 1.多项式乘法 两个多项式相乘即为多项式乘法,例如:3*x^7+4*x^5+1*x^2+5与 ...

  7. 闲话复数(1) | 不现实的虚数 i 为什么虚?它长成什么样?

    原文 | https://mp.weixin.qq.com/s/y-Nb3S508UZuf_0GtRuNaQ 复数的英文是complex number,直译是复杂的数.最早接触复数大概是在高中时期,只 ...

  8. 复数基础及其2D空间的旋转

    本文我们讨论复数及其旋转的含义.复数很有意思,本文介绍了复数的基本定义和性质,以及它关于旋转的几何意义. 复数对于旋转的两个方面极为重要: 1. 它引入了旋转算子(rotational operato ...

  9. Java练习 SDUT-4303_简单的复数运算(类和对象)

    简单的复数运算(类和对象) Time Limit: 2000 ms Memory Limit: 65536 KiB Problem Description 设计一个类Complex,用于封装对复数的下 ...

随机推荐

  1. 微信小程序 开发环境配置

    1.注册小程序 (1)微信公众平台:https://mp.weixin.qq.com/(2)立即注册 (3)流程 (4)小程序注册 (5)填写相关信息,并去邮箱激活.这样小程序的账号就注册完成了. 2 ...

  2. 使用BatteryHistorian分析和优化应用电量

    欢迎Follow我的GitHub, 关注我的CSDN. 在Android项目中, 较难监控应用的电量消耗, 可是用户却很关心手机的待机时间. 过度耗电的应用, 会遭到用户无情的卸载, 不要存在侥幸心理 ...

  3. ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml) 用javascript在客户端删除某一个cookie键值对 input点击链接另一个页面,各种操作。 C# 往线程里传参数的方法总结 TCP/IP 协议 用C#+Selenium+ChromeDriver 生成我的咕咚跑步路线地图 (转)值得学习百度开源70+项目

    ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml)   我们都知道在使用WebApi的时候Controller会自动将Action的返回值自动进行各种序列化处理(序列化为 ...

  4. 怎样查询锁表的SQL

    通过以下的语句查询出锁表的SQL: select l.session_id sid, s.serial#,        l.locked_mode,        l.oracle_username ...

  5. HDU 2049 不容易系列之(4)——考新郎 (递推,含Cmn公式)

    不容易系列之(4)——考新郎 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)To ...

  6. error C2065: 'CArchiveStream' : undeclared identifier

    release:模式下 问题: 在导入JPEG文件时要使用到  CArchiveStream类  但是编译的时候会出现  'CArchiveStream'   :   undeclared   ide ...

  7. HDU 6078 Wavel Sequence 树状数组优化DP

    Wavel Sequence Problem Description Have you ever seen the wave? It's a wonderful view of nature. Lit ...

  8. 在Java中如何编写回调函数,以及回调函数的简单应用

    import static java.lang.System.out; import static java.lang.System.err; import java.util.logging.Lev ...

  9. idea 破解注册方法总结

    注册码(无期限) JetbrainsCrack-2.6.2.jar适用于ideaIU-2017.2.之前版本,若版本较新适用 JetbrainsCrack-2.6.3_proc.jar. 其中Jetb ...

  10. @SpringBootApplication 注解

    @SpringBootApplication 启动类注解(一般在root下):该注解被@Configuration.@EnableAutoConfiguration.@ComponentScan 这三 ...