复数乘法运算(三次实数乘法)-c++代码实现及运行实例结果
2017-12-16 14:20
756 查看
设计算法,仅使用三次实数乘法即可完成复数Z1=a+b*i,Z2=c+d*i相乘,根据复数乘法的计算公式:Z1*Z2=(a*c-b*d)+(a*d+b*c)i,可以使用加法或者减法来减少乘法运算的时间。计算temp1=a*d,temp2=b*c,temp3=(a+b)(c-d),虚部为temp1+temp2,实部为temp3+temp1-temp2
c++代码
运行结果
c++代码
#include <iostream> using namespace std; class matrixmul { private: double real; double imag; public: void output();//打印输出 void initSet(double re,double im);//初始化 matrixmul matrixMul(matrixmul Z1,matrixmul Z2);//函数返回值是multirxmul,所以此函数类型为matrixmal }; matrixmul matrixmul::matrixMul(matrixmul Z1,matrixmul Z2) { double temp1,temp2,temp3; matrixmul result; temp1=Z1.real*Z2.imag; temp2=Z1.imag*Z2.real; temp3=(Z1.imag+Z1.real)*(Z2.real-Z2.imag); result.real=temp1+temp3-temp2; result.imag=temp1+temp2; return result; } void matrixmul::initSet(double re,double im) { real=re; imag=im; } void matrixmul::output() { if(imag>0) { cout<<real<<"+"<<imag<<"i"<<endl; } else if(imag==0) { cout<<real<<endl; } else if(imag<0) { cout<<real<<imag<<"i"<<endl; } } int main() { matrixmul Z1,Z2,Z3,result; Z1.initSet(1,-2); Z2.initSet(3,-4); cout<<"第一个复数Z1为:"<<endl; Z1.output(); cout<<"第二个复数Z2为:"<<endl; Z2.output(); result=Z3.matrixMul(Z1,Z2); cout<<"两复数相乘结果的复数为:"<<endl; result.output(); return 0; }
运行结果
相关文章推荐
- 复数乘法运算(三次实数乘法)-c++代码实现及运行实例结果
- 复数乘法运算(三次实数乘法)-c++代码实现及运行实例结果
- 复数乘法运算(三次实数乘法)-c++代码实现及运行实例结果
- 复数乘法运算(三次实数乘法)-c++代码实现及运行实例结果
- 复数乘法运算(三次实数乘法)-c++代码实现及运行实例结果
- 复数乘法运算(三次实数乘法)-c++代码实现及运行实例结果
- 复数乘法运算(三次实数乘法)-c++代码实现及运行实例结果
- 复数乘法运算(三次实数乘法)-c++代码实现及运行实例结果
- 复数乘法运算(三次实数乘法)-c++代码实现及运行实例结果
- 复数乘法运算(三次实数乘法)-c++代码实现及运行实例结果
- 复数四则运算-c++代码实现及运行实例结果
- 复数四则运算-c++代码实现及运行实例结果
- 复数四则运算-c++代码实现及运行实例结果
- 复数四则运算-c++代码实现及运行实例结果
- 复数四则运算-c++代码实现及运行实例结果
- 复数四则运算-c++代码实现及运行实例结果
- 复数四则运算-c++代码实现及运行实例结果
- 复数四则运算-c++代码实现及运行实例结果
- 复数四则运算-c++代码实现及运行实例结果
- 复数四则运算-c++代码实现及运行实例结果