数据结构Java版 复数乘积(签到题)

题目描述

数集拓展到实数范围内,仍有些运算无法进行。比如判别式小于0的一元二次方程无解,因此将数集再次扩充,达到复数范围。

  定义:形如z=a+bi的数称为复数(complex number),其中规定i虚数单位,且i^2=i*i=-1(a,b是任意实数

  我们将复数z=a+bi中的实数a称为复数z的实部(real part)记作Rez=a

  实数b称为复数z的虚部(imaginary part)记作 Imz=b.

  已知:当b=0时,z=a,这时复数成为实数;

  当a=0且b≠0时 ,z=bi,我们就将其称为纯虚数

  定义: 对于复数z=a+bi,称复数z'=a-bi为z的共轭复数

  定义:将复数的实部与虚部的平方和的正的平方根的值称为该复数的模,记作∣z∣

  规定复数的乘法按照以下的法则进行:

  设z1=a+bi,z2=c+di(a、b、c、d∈R)是任意两个复数,那么它们的积(a+bi)(c+di)=(ac-bd)+(bc+ad)i.

  其实就是把两个复数相乘,类似两个多项式相乘,在所得的结果中把i2换成-1,并且把实部与虚部分别合并.两个复数的积仍然是一个复数.

输入

两个复数分两行,每行两个数,代表复数的实部和虚部。

输出

两个复数的乘积。

样例输入

1 1
1 1

样例输出

0 2

分析:题目说的很详细乘积实部结果为一个复数的实部乘以另一个复数的实部加上一个负数的虚部乘以另一个复数的虚部的积的相反数,乘积虚部结果为两个复数相互实部虚部相乘再相加即可

#include<iostream>
using namespace std;
int main()
{
	int a1,b1,a2,b2;
	cin>>a1>>b1>>a2>>b2;
	cout<<a1*a2+(-1)*b1*b2<<' '<<a1*b2+a2*b1<<endl;
}

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值