1000. The Complex Class

#include<iostream>

using namespace std;

class Complex //复数类

{

public:

Complex(double real = 0, double imag = 0);

Complex operator+(Complex& com);

Complex operator-(Complex& com);

Complex operator*(Complex& com);

Complex operator/(Complex& com);

double& operator[](int i);

double operator[](int i) const;

friend ostream& operator<<(ostream& os, Complex& com);//友元函数重载提取运算符"<<"

friend istream& operator>>(istream& is, Complex& com);//友元函数重载插入运算符">>"

private:

double real;//实数

double imag;//虚数

};

Complex::Complex (double a, double b){
     real = a;
     imag = b;
    }
 Complex Complex::operator+(Complex& com){
   Complex a;
   a.real = real + com.real;
   a.imag = imag + com.imag;
   return a;
 }

Complex Complex::operator-(Complex& com){
   Complex a;
   a.real = real -com.real;
   a.imag = imag- com.imag;
   return a;
 }

Complex Complex::operator*(Complex& com){
   Complex a;
   a.real = real * com.real - imag * com.imag;
   a.imag = imag * com.real + real * com.imag;
   return a;
 }

Complex Complex::operator/(Complex& com){
   Complex a;
   a.real = (real * com.real + imag * com.imag)/(com.real*com.real + com.imag*com.imag);
   a.imag = (imag * com.real - real *com.imag)/(com.real*com.real + com.imag*com.imag);
   return a;
 }

double& Complex::operator[](int i){
     if(i==0) return real;
     else if(i==1) return imag;
    }

double Complex::operator[](int i) const{
     if(i==0) return real;
     else if(i==1) return imag;
    }

ostream& operator<<(ostream& os, Complex& com){
        if(com.real !=0) cout<<com.real;
        if(com.real!=0&&com.imag!=0){
         if(com.imag==1) cout<<"+i";
         else if(com.imag==-1) cout<<"-i";
         else if(com.imag>0) cout<<"+"<<com.imag<<"i";
   else cout<<com.imag<<"i";
        }
        if(com.real==0&&com.imag!=0){
         if(com.imag==1) cout<<"i";
         else if(com.imag==-1) cout<<"-i";
         else if(com.imag>0) cout<<com.imag<<"i";
   else cout<<com.imag<<"i";
        }
        if(com.imag==0&&com.real==0) cout<<0;
     return os;
    }

istream& operator>>(istream& is, Complex& com){
  cin>>com.real>>com.imag;
  return is;
 }

int main()

{

int T;

cin >> T;

while (T--) {

Complex com1, com2;

cin >> com1;

cout << com1 << endl;

cout << com1[0] << " " << com1[1] << endl;

cin >> com2;

cout << com2 << endl;

cout << com2[0] << " " << com2[1] << endl;

Complex c1 = com1 + com2;

cout << "(" << com1 << ")+(" << com2 << ")=" << c1 << endl;

Complex c2 = com1 - com2;

cout << "(" << com1 << ")-(" << com2 << ")=" << c2 << endl;

Complex c3 = com1 * com2;

cout << "(" << com1 << ")*(" << com2 << ")=" << c3 << endl;

Complex c4 = com1 / com2;

cout << "(" << com1 << ")/(" << com2 << ")=" << c4 << endl;

}

return 0;

}

时间: 2024-10-19 01:43:49

1000. The Complex Class的相关文章

和Keyle一起学StrangeIoc &ndash; Extensions

Strange: the IoC framework for Unity Extensions You may have heard that Strange is a Dependency Injection framework. I'm a little uncomfortable with that description. Sure, Strange offers DI and it's a great use, but the core of the framework - as I'

Such complex, very wow – A guide to Algorithmic Complexity

Such complex, very wow – A guide to Algorithmic Complexity Prerequisites: Exponentiation Basic algebra Functions and asymptotes Prior knowledge of Insertion Sort and other basic sorts of sorts This post is roughly divided into three parts, so feel fr

深度复数网络 Deep Complex Networks

转自:https://www.jiqizhixin.com/articles/7b1646c4-f9ae-4d5f-aa38-a6e5b42ec475  (如有版权问题,请联系本人) 目前绝大多数深度学习模型中的数学都是实数值的,近日,蒙特利尔大学.加拿大国家科学院-能源/材料/通信研究中心(INRS-EMT).微软 Maluuba.Element AI 的多名研究者(其中包括 CIFAR Senior Fellow Yoshua Bengio)在 arXiv 上发布了一篇 NIPS 2017(

AD域控制器 修改查询记录最大值1000的限制

作为一个AD管理员来说,我们AD计算机管理工具管理LDAP服务是很常见的,但是如果我们组织内的用户比较多的话,就会遇到一个问题呢,通过计算机管理工具搜索所有用户或者某个OU下用户的时候就会发现出现提示信息,提示最大可以显示1000个用户,如果想显示更多的用户需要增加参数或者修改配置等.我们可以通过以下方式进行修改. 开始 -> 运行 -> cmd 输入:  ntdsutil 2. 输入: ldap policies 3. 输入: connections 4. 连接域: connect to d

全球首款1000核处理器问世,1节5号电池供电

近日,加州大学戴维斯分校(University of California, Davis)研究人员开发出了一款1000核处理器,这款处理器被称为“KiloCore”,是全球首款拥有1000个内核的处理器.而且,这1000个内核还可以独立运行. KiloCore每秒可执行1.78万亿次指令,至少在由大学研究人员设计的处理器中,其时钟频率是最高的.这款处理器由IBM制造,使用的是相对陈旧的32纳米CMOS制造工艺,而非当前最先进芯片所使用的更新制造工艺. 由于每个处理内核都是独立的,在不使用的时候还

使用complex对象

#include<iostream>#include<string>#include<complex> using namespace std;void main(){    complex <int> num1(3, 4);    complex <float> num2(3.3, 4.5);    string str1("real is ");    string str2 = "imag is ";

c语言:1000瓶水,有一瓶是有毒的,现共有10只老鼠,怎么判断毒水?

问题:1000瓶水,其中有一瓶是有毒的,一只老鼠喝下毒水会一天之后死亡,现在共有10只老鼠,怎么判断哪一瓶水是毒水? 分析:2^10=1024,则可以考虑利用二进制求解 解:给1000瓶水依次标号1至1000,将10只老鼠从右向左排成一列,第一瓶水让右边第1只老鼠喝,第2瓶水让第2只老鼠喝,第3瓶水让第1,2只老鼠喝,则第4瓶水让第3只老鼠喝,......第1000瓶水依次让第4,6,7,8,9,10只老鼠喝,记死亡的老鼠为1,未死亡的老鼠为0,按照二进制表示数的方法求出这个数,就知道哪瓶是毒水

IN 查询时出现ORA-01795:列表中的最大表达式数为1000解决方法

问题描述: SQL进行IN查询时出现:java.sql.SQLException: ORA-01795: 列表中的最大表达式数为 1000 解决办法: 问题原因是:SQL进行IN查询时,IN中的数据量不能超过1000条. 例如:select * from student where id in ('S1','S2'...........) 如果in后面数据量过多的话就会报错. 解决方法是:用 or关键字 如:select * from student where id in('S1','S2',

js--随机产生100个从0 ~ 1000之间不重复的整数(me)

<style>       div{text-indent:40px;} </style> <script> window.onload=function(){ var arr=[]; var str=''; for(var i=0;i<100;i++){ /*思路:先把随机数追加到数组尾部*/ arr.push(Math.round(Math.random()*1000)); /*然后再拿这个数组最后一个与之前的数一一比较*/ for(var j=0;j<