• 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;
    } 
    

      

  • 相关阅读:
    Mac电脑上的软件以及作用整理
    sed命令在mac和linux下的区别
    gin框架开启web跨域
    Mac下输入特殊字符的总结
    4月4悼念日 多数app 或者网站变成灰色的实现效果
    Mqtt 客户端多主题订阅
    paho.mqtt.golang--option.go 源码解析
    MQTT服务器(Broker)
    asdine/storm学习笔记
    vuex基本使用教程
  • 原文地址:https://www.cnblogs.com/zhumengdexiaobai/p/8460437.html
Copyright © 2020-2023  润新知