算法笔记_047:复数运算(Java)
2017-02-22 22:11
267 查看
1 问题描述
编程实现两个复数的运算。设有两个复数 和 ,则他们的运算公式为:要求:(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
2 解决方案
具体代码如下:package com.liuzhen.systemExe; import java.io.IOException; import java.util.Scanner; public class Main{ public void complexOperation(char operation,double a,double b,double c,double d){ if(operation == '+'){ double temp1 = a + c; double temp2 = b + d; System.out.printf("%.2f",temp1); System.out.print("+"); System.out.printf("%.2f",temp2); System.out.print("i"); } if(operation == '-'){ double temp1 = a - c; double temp2 = b - d; System.out.printf("%.2f",temp1); System.out.print("+"); System.out.printf("%.2f",temp2); System.out.print("i"); } if(operation == '*'){ double temp1 = a*c - b*d; double temp2 = a*d + b*c; System.out.printf("%.2f",temp1); System.out.print("+"); System.out.printf("%.2f",temp2); System.out.print("i"); } if(operation == '/'){ double temp1 = (a*c + b*d)/(c*c + d*d); double temp2 = (b*c - a*d)/(c*c + d*d); System.out.printf("%.2f",temp1); System.out.print("+"); System.out.printf("%.2f",temp2); System.out.print("i"); } } public static void main(String[] args){ Main test = new Main(); Scanner in = new Scanner(System.in); //System.out.println("请输入一个运算符和四个数字:"); //此处重点在于单个字符的输入问题 char operation = 0; try { operation = (char)System.in.read(); } catch (IOException e) { e.printStackTrace(); } double[] temp = new double[4]; for(int i = 0;i < 4;i++){ temp[i] = in.nextDouble(); } test.complexOperation(operation, temp[0], temp[1], temp[2], temp[3]); } }
[b]运行结果:[/b]
请输入一个运算符和四个数字: + 1 2 3 4 4.00+6.00i 请输入一个运算符和四个数字: - 1 2 3 4 -2.00+-2.00i
[b]参考资料:[/b]
1. 2016蓝桥杯假期任务之《复数运算》
相关文章推荐
- 算法笔记_156:算法提高 6-17复数四则运算(Java)
- 算法笔记_162:算法提高 复数归一化(Java)
- 链栈实现算法 - Java 学习笔记(26)
- 复数运算的JAVA类
- JVM笔记3:Java垃圾收集算法与垃圾收集器
- java笔记之数组的概念、声明、初始化、访问方式、复制和动态扩展算法以及递归
- java 学习笔记2-变量、运算、数组
- java求复数四则运算,习题5.23(最终版)
- java 的算法与运算
- 用java实现复数的加减乘除运算
- 用java实现复数的加减乘除运算(改进第1次)
- java笔记之数组的概念、声明、初始化、访问方式、复制和动态扩展算法以及递归
- 复数运算的JAVA类
- Java 交换值算法 不用中间变量,换运算
- Java学习笔记之语言基础――取模运算的正负符号
- JVM笔记3:Java垃圾收集算法与垃圾收集器
- Java 线程同步问题 生产者-消费者 算法实现 -Java学习笔记(29)
- JAVA 数据结构与算法学习笔记一(转载)
- Java菜鸟学习笔记--语法篇(五):位运算实例
- 黑马程序员—Java基础学习笔记之排序算法:选择排序&冒泡排序