zoukankan      html  css  js  c++  java
  • 54-复数运算

        
          算法训练 P1103  
    时间限制:1.0s   内存限制:256.0MB
        
      
      编程实现两个复数的运算。设有两个复数 和 ,则他们的运算公式为:

      要求:(1)定义一个结构体类型来描述复数。
      (2)复数之间的加法、减法、乘法和除法分别用不用的函数来实现。
      (3)必须使用结构体指针的方法把函数的计算结果返回。
      说明:用户输入:运算符号(+,-,*,/) a b c d.
      输出:a+bi,输出时不管a,b是小于0或等于0都按该格式输出,输出时a,b都保留两位。

    输入:
      - 2.5 3.6 1.5 4.9
    输出:
      1.00+-1.30i

    运算法则

    编辑
    加法法则
    复数的加法法则:设z1=a+bi,z2=c+di是任意两个复数。两者和的实部是原来两个复数实部的和,它的虚部是原来两个虚部的和。两个复数的和依然是复数。
     
    乘法法则
    复数的乘法法则:把两个复数相乘,类似两个多项式相乘,结果中i²= -1,把实部与虚部分别合并。两个复数的积仍然是一个复数。
     
    除法法则
    复数除法定义:满足
      
    的复数
      
    叫复数a+bi除以复数c+di的商。
    运算方法:将分子和分母同时乘以分母的共轭复数,再用乘法法则运算,
     
    #include <iostream>
    #include <cstdio>
    using namespace std;
    typedef struct node{
    	double a, b;
    }fu;
    
    fu* jian(fu a1, fu a2){
    	fu ans;
    	ans.a = a1.a - a2.a;
    	ans.b = a1.b - a2.b;
    	return &ans;
    }
    fu* jia(fu a1, fu a2){
    	fu ans;
    	ans.a = a1.a + a2.a;
    	ans.b = a1.b + a2.b;
    	return &ans;
    }
    fu* cheng(fu a1, fu a2){
    	fu ans;
    	ans.a = a1.a * a2.a - a1.b * a2.b;
    	ans.b = a1.a * a2.b + a2.a * a1.b;
    	return &ans;  
    }
    fu* chu(fu a1, fu a2){
    	fu ans;
    	if(a2.a * a2.a + a2.b * a2.b == 0)
    		ans.a = 0, ans.b = 0;
    	else{
    		ans.a = (a1.a * a2.a + a1.b * a2.b) / (a2.a * a2.a + a2.b * a2.b);
    		ans.b = (a1.b * a2.a - a1.a * a2.b) / (a2.a * a2.a + a2.b * a2.b);
    	}
    	return &ans;
    }
    int main(){
    	fu a1, a2;
    	char ch;
    	cin >> ch >> a1.a >> a1.b >> a2.a >> a2.b;
    	fu *a3;
    	if(ch == '-'){
    		a3 = jian(a1, a2);
    	}
    	else if(ch == '+'){
    		a3 = jia(a1, a2);
    	}
    	else if(ch == '*'){
    		a3 = cheng(a1, a2);
    	}
    	else if(ch == '/'){
    		a3 = chu(a1, a2);
    	}
    	printf("%.2f+%.2fi", (*a3).a, (*a3).b);
    	return 0;
    } 
    

      

  • 相关阅读:
    ubuntu安装openssh-server 报依赖错误的解决过程
    用 Scikit-Learn 和 Pandas 学习线性回归
    python 10分钟入门pandas
    (转)梯度下降法及其Python实现
    pandas处理日期时间,按照时间筛选
    谁动了我的特征?——sklearn特征转换行为全记录
    使用sklearn做单机特征工程
    罗技鼠标黑科技
    怎样给 VS 更换皮肤
    SQLSERVER存储过程基本语法
  • 原文地址:https://www.cnblogs.com/zhumengdexiaobai/p/8460437.html
Copyright © 2011-2022 走看看