算法训练 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

 
题目解析:
  复数运算法则:
    (1)加法运算
        (a+bi) + (c+di) = (a+c) + (b+d)i
    (2)减法运算
         (a+bi) - (c+di) = (a-c) + (b-d)i
    (3)乘法运算
        (a+bi) * (c+di) = (ac-bd) + (bc+ad)i
    (4)除法运算
        (a+bi) / (c+di) = (ac+bd)/(c^2+d^2) + (bc-ad)/(c^2+d^2)i
 
示例代码:
 import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.DecimalFormat; public class Main {
private static double[] num;
private static BufferedReader br;
private static DecimalFormat df; public static void main(String[] args) throws IOException {
br = new BufferedReader(new InputStreamReader(System.in));
df=new DecimalFormat("0.00");
String[] str = br.readLine().split(" "); char op= str[0].charAt(0); num = new double[str.length-1];
for(int i = 0; i < num.length; i++){
num[i] = Double.parseDouble(str[i+1]);
} complexCalculation(op,num); } /**
* 复数运算
* @param op 运算符号
* @param num a b c d
*/
private static void complexCalculation(char op, double[] num){
if(op == '+'){
System.out.println(df.format(num[0] + num[2])+ "+" +df.format(num[1] + num[3])+ "i");
}else if(op == '-'){
System.out.println(df.format(num[0] - num[2])+ "+" +df.format(num[1] - num[3])+ "i");
}else if(op == '*'){
System.out.println(df.format(num[0]* num[2] - num[1] * num[3])+ "+"
+df.format(num[0] * num[3] + num[1] * num[2])+ "i");
}else if(op == '/'){
System.out.println(df.format((num[0] * num[2] + num[1] * num[3]) / (num[3] * num[3] + num[2] * num[2]))+ "+"
+df.format((num[1] * num[2] - num[0] * num[3]) / (num[3] * num[3] + num[2] * num[2])) +"i");
}
}
}

蓝桥杯 算法训练 ALGO-142 P1103的更多相关文章

  1. Java实现 蓝桥杯 算法训练 p1103

    算法训练 P1103 时间限制:1.0s 内存限制:256.0MB 编程实现两个复数的运算.设有两个复数 和 ,则他们的运算公式为: 要求:(1)定义一个结构体类型来描述复数. (2)复数之间的加法. ...

  2. Java实现 蓝桥杯 算法训练 猴子吃包子(暴力)

    试题 算法训练 猴子吃包子 问题描述 从前,有一只吃包子很厉害的猴子,它可以吃无数个包子,但是,它吃不同的包子速度也不同:肉包每秒钟吃x个:韭菜包每秒钟吃y个:没有馅的包子每秒钟吃z个:现在有x1个肉 ...

  3. Java实现蓝桥杯 算法训练 大等于n的最小完全平方数

    试题 算法训练 大等于n的最小完全平方数 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 输出大等于n的最小的完全平方数. 若一个数能表示成某个自然数的平方的形式,则称这个数为完全平 ...

  4. 蓝桥杯算法训练 java算法 表达式求值

    问题描述 输入一个只包含加减乖除和括号的合法表达式,求表达式的值.其中除表示整除. 输入格式 输入一行,包含一个表达式. 输出格式 输出这个表达式的值. 样例输入 1-2+3*(4-5) 样例输出 - ...

  5. 蓝桥杯 算法训练 ALGO-117 友好数

    算法训练 友好数   时间限制:1.0s   内存限制:256.0MB 问题描述 有两个整数,如果每个整数的约数和(除了它本身以外)等于对方,我们就称这对数是友好的.例如: 9的约数和有:1+3=4 ...

  6. java实现 蓝桥杯 算法训练 Password Suspects

    问题描述 在年轻的时候,我们故事中的英雄--国王 Copa--他的私人数据并不是完全安全地隐蔽.对他来说是,这不可接受的.因此,他发明了一种密码,好记又难以破解.后来,他才知道这种密码是一个长度为奇数 ...

  7. 蓝桥杯 算法训练 Torry的困惑(基本型)(水题,筛法求素数)

    算法训练 Torry的困惑(基本型) 时间限制:1.0s   内存限制:512.0MB      问题描述 Torry从小喜爱数学.一天,老师告诉他,像2.3.5.7……这样的数叫做质数.Torry突 ...

  8. 蓝桥杯 算法训练 区间k大数查询(水题)

    算法训练 区间k大数查询 时间限制:1.0s   内存限制:256.0MB 问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个. 输入格式 第一行包含一个数n,表示序列长度. ...

  9. 蓝桥杯--算法训练 区间k大数查询

                                                                                 算法训练 区间k大数查询   时间限制:1.0 ...

随机推荐

  1. 编写自已的第一个MapReduce程序

    从进入系统学习到现在,貌似我们还没有真正开始动手写程序,估计有些立志成为Hadoop攻城狮的小伙伴们已经有些急了.环境已经搭好,小讲也有些按捺不住了.今天,小讲就和大家一起来动手编写我们的第一个Map ...

  2. Django源码剖析

    一.Django底层剖析之一次请求到响应的整个流程 As we all know,所有的Web应用,其本质上其实就是一个socket服务端,而用户的浏览器就是一个socket客户端 #!/usr/bi ...

  3. 线性代数:Ax=b的解

    n列的矩阵A,当且仅当向量b是列空间C(A)的一个向量时,Ax=b有解. C(A)的零空间是N(A),N(A)正交补是A的行空间C(T(A)), 依据上一章的结论,任何Rn向量可以表示为r+n,其中n ...

  4. linux+udp+server+client

    一.客户端 #include<sys/types.h> #include<sys/socket.h> #include<netinet/in.h> #include ...

  5. FTH: (7156): *** Fault tolerant heap shim applied to current process. This is usually due to previous crashes. ***

    这两天在Qtcreator上编译程序的时候莫名其妙的出现了FTH: (7156): *** Fault tolerant heap shim applied to current process. T ...

  6. Struts2全局异常处理

    1.在struts.xml中配置全局异常处理 在Action中抛出异常,此异常可以是action自己抛的,也可以是Service抛出来的,都会跳转到全局异常中,只有在当前Action中配置域全局异常返 ...

  7. hive学习2(Navicat连接hive)

    Navicat连接hive 第一步:win下安装好mysql 第二步:win下安装Navicat 第三步:启动hadoop集群,启动hive 第四步:Navicat连接hive 在第四步中需先配置ss ...

  8. Java注解处理器

    Java注解处理器 2015/03/03 | 分类: 基础技术 | 0 条评论 | 标签: 注解 分享到:1 译文出处: race604.com   原文出处:Hannes Dorfmann Java ...

  9. Android Sqlite 批量插入性能优化

    db.beginTransaction(); try { for (...) { db.execSQL("...", new Object[]{}); } db.setTransa ...

  10. delphi 数据连接规范

    建议大家采用另外一种编码风格,不要在程序中到处都有这种LZ程序生成的代码: begin with qryMain do begin try Close; SQL.Clear; SQL.Add('Del ...