算法笔记_047:复数运算(Java)
目录
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]);
}
}
运行结果:
请输入一个运算符和四个数字:
+ 1 2 3 4
4.00+6.00i 请输入一个运算符和四个数字:
- 1 2 3 4
-2.00+-2.00i
参考资料:
算法笔记_047:复数运算(Java)的更多相关文章
- 算法笔记_018:旅行商问题(Java)
目录 1 问题描述 2 解决方案 2.1 蛮力法 2.2 减治法 2.2.1 Johson-Trotter算法 2.2.2 基于字典序的算法 1 问题描述 何为旅行商问题?按照非专业的说法,这个问 ...
- 算法笔记_156:算法提高 6-17复数四则运算(Java)
目录 1 问题描述 2 解决方案 1 问题描述 设计复数库,实现基本的复数加减乘除运算. 输入时只需分别键入实部和虚部,以空格分割,两个复数之间用运算符分隔:输出时按a+bi的格式在屏幕上打印结果 ...
- 算法笔记_019:背包问题(Java)
目录 1 问题描述 2 解决方案 2.1 蛮力法 2.2 减治法 2.2.1 递归求解 2.2.2 非递归求解(运用异或运算) 2.3 动态规划法 1 问题描述 给定n个重量为w1,w2,w3,... ...
- 算法笔记_015:快速排序(Java)
目录 1 问题描述 2 解决方案 2.1 快速排序原理简介 2.2 具体编码 1 问题描述 给定一组数据,使用快速排序得到这组数据的非降序排列. 2 解决方案 2.1 快速排序原理简介 引用自百度百科 ...
- 算法笔记_230:运动员分组(Java)
目录 1 问题描述 2 解决方案 1 问题描述 有N个人参加100米短跑比赛.跑道为8条.程序的任务是按照尽量使每组的人数相差最少的原则分组.例如:N=8时,分成1组即可.N=9时,分成2组:一组 ...
- 算法笔记_136:交替字符串(Java)
目录 1 问题描述 2 解决方案 1 问题描述 输入三个字符串s1.s2和s3,判断第三个字符串s3是否由前两个字符串s1和s2交错而成且不改变s1和s2中各个字符原有的相对顺序. 2 解决方案 ...
- 算法笔记_010:插入排序(Java)
1 问题描述 给定一组数据,使用插入排序得到这组数据的非降序排列. 2 解决方案 2.1 插入排序原理简介 引用自百度百科: 有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求 ...
- 算法笔记_039:杨辉三角形(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数. 它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加. ...
- 算法笔记_041:寻找和为定值的多个数(Java)
目录 1 问题描述 2 解决方案 1 问题描述 输入两个整数n和sum,要求从数列1,2,3,...,n中随意取出几个数,使得它们的和等于sum,请将其中所有可能的组合列出来. 2 解决方案 上述问题 ...
随机推荐
- 【BZOJ 4070】【APIO 2015】雅加达的摩天楼
http://www.lydsy.com/JudgeOnline/problem.php?id=4070 分块建图. 对每个\(P_i\)分类讨论,\(P_i>\sqrt N\)则直接连边,边数 ...
- 我的OI生涯番外篇
番外篇 转眼间我学oi已经一年了,可回头想想这一年来的收获也没有什么,大部分时间都荒废掉了. 下半年开学后,学物竞的王洋转来了我们电竞,虽然他之前是我的同班同学但也没怎么交流过. 这下我们又成为了oi ...
- NOIP2017 D2T2宝藏
考场上写的prim一遍过了大样例也没想什么别的,反例也没举出来. 后来才知道由于要乘上深度所以无法贪心. 正解是状压但我不会,考后一个爆搜碾过去了. 心凉. #include<bits/stdc ...
- bzoj 1143: [CTSC2008]祭祀river / 2718: [Violet 4]毕业旅行 -- 二分图匹配
1143: [CTSC2008]祭祀river Time Limit: 10 Sec Memory Limit: 162 MB Description 在遥远的东方,有一个神秘的民族,自称Y族.他们 ...
- VK Cup 2016 - Round 1 (Div. 2 Edition) B. Bear and Displayed Friends 树状数组
B. Bear and Displayed Friends 题目连接: http://www.codeforces.com/contest/658/problem/B Description Lima ...
- mysql数据库文件简介和应用
存放目录: 用 whereis my.cnf 查看mysql配置文件的目录,查看my.cnf的datadir参数可找到mysql数据库文件的存放目录. 本机存放的目录为/var/lib/mysql,进 ...
- [转译] AD RMS 安装最佳实践
在安装活动目录权限管理服务(ADRMS)时,请牢记以下几点: 将 AD RMS服务单独安装在一台服务器上——将 AD RMS与域控制器.微软邮件服务器(Microsoft Exchange Serve ...
- Two-transistor circuit replaces IC
Linear Technology's recently introduced LTC4300 chip buffers I2C clock and data lines to and from a ...
- Visual Studio技巧集锦
总结了一下VS的使用快捷键, 以下这些是必须转化为肌肉记忆的. 1.Ctrl+Shift+V循环粘贴不同的内容 剪贴板最多可以保存20项内容,通过Ctrl+Shift+V可以循环粘贴出之前复制过的内容 ...
- 解决 Operation must use an updateable query
在asp.net 开发环境下,用jet 4.0连接access数据库, 有时会产生Operation must use an updateable query,这是由于相关用户mdb文件没有Modif ...