Java实现 蓝桥杯 算法提高 复数四则运算
算法提高 6-17复数四则运算
时间限制:1.0s 内存限制:512.0MB
提交此题
设计复数库,实现基本的复数加减乘除运算。
输入时只需分别键入实部和虚部,以空格分割,两个复数之间用运算符分隔;输出时按a+bi的格式在屏幕上打印结果。参加样例输入和样例输出。
注意考虑特殊情况,无法计算时输出字符串"error"。
样例输入
2 4 * -3 2
样例输出
-14-8i
样例输入
3 -2 + -1 3
样例输出
2+1i
import java.util.Scanner;
public class 复数四则运算 {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
double a1 = reader.nextDouble();
// System.out.println(Math.round(a1));//取double的整数部分
double b1 = reader.nextDouble();
String str = reader.next();
double a2 = reader.nextDouble();
double b2 = reader.nextDouble();
double a = 0;
double b = 0;
boolean flag = true;
if (str.equals("+")) {
a = a1 + a2;
b = b1 + b2;
} else if (str.equals("-")) {
a = a1 - a2;
b = b1 - b2;
} else if (str.equals("*")) {
if ((a1 == a2) && (b1 == -b2)) {
System.out.println(a1 * a1 + b1 * b1);
} else {
a = a1 * a2 - b1 * b2;
b = a1 * b2 + b1 * a2;
}
} else if (str.equals("/")) {
if (a2 == 0 && b2 == 0) {//无法计算时输出字符串"error"
System.out.println("error");
flag = false;
} else {
double c = a2 * a2 + b2 * b2;
a = (a1 * a2 + b1 * b2) / c; //此题做除法要用double
b = (b1 * a2 - a1 * b2) / c;
}
}
if (flag) {
if (b < 0) { //虚部为负
if ((a - Math.round(a)) == 0) {//如果a=3.0
System.out.print(Math.round(a));//只输出整数部分,3
} else {
System.out.print(a);//如果a=3.1,则输出3.1
}
if ((b - Math.round(b)) == 0) {
System.out.print(Math.round(b));
} else {
System.out.print(b);
}
} else { //虚部为正
if ((a - Math.round(a)) == 0) {
System.out.print(Math.round(a));
} else {
System.out.print(a);
}
System.out.print("+");
if ((b - Math.round(b)) == 0) {
System.out.print(Math.round(b));
} else {
System.out.print(b);
}
}
System.out.println("i");
}
}
}
Java实现 蓝桥杯 算法提高 复数四则运算的更多相关文章
- Java实现 蓝桥杯 算法提高 进攻策略加强(暴力)
试题 算法提高 进攻策略加强 问题描述 植物大战僵尸这款游戏中,还有一个特别的玩儿法:玩家操纵僵尸进攻植物. 首先,僵尸有m种(每种僵尸都是无限多的),玩家可以选择合适的僵尸来进攻.使用第i种僵尸需要 ...
- Java实现 蓝桥杯 算法提高 小X的购物计划
试题 算法提高 小X的购物计划 问题描述 小X打算去超市shopping.小X没什么钱,只有N元.超市里有M种物品,每种物品都需要money,在小X心中有一个重要度.有的物品有无限件,有的物品只有几件 ...
- Java实现 蓝桥杯 算法提高 天天向上(DP)
试题 算法提高 天天向上 问题描述 A同学的学习成绩十分不稳定,于是老师对他说:"只要你连续4天成绩有进步,那我就奖励给你一朵小红花."可是这对于A同学太困难了.于是,老师对他放宽 ...
- Java实现 蓝桥杯 算法提高 欧拉函数(数学)
试题 算法提高 欧拉函数 问题描述 老师出了一道难题,小酱不会做,请你编个程序帮帮他,奖金一瓶酱油: 从1-n中有多少个数与n互质? |||||╭══╮ ┌═════┐ ╭╯让路║═║酱油专用车║ ╰ ...
- Java实现 蓝桥杯 算法提高 计算超阶乘(暴力)
试题 算法提高 计算超阶乘 问题描述 计算1*(1+k)(1+2k)(1+3k)-(1+n*k-k)的末尾有多少个0,最后一位非0位是多少. 输入格式 输入的第一行包含两个整数n, k. 输出格式 输 ...
- Java实现蓝桥杯 算法提高 线段和点
算法提高 线段和点 时间限制:1.0s 内存限制:256.0MB 提交此题 问题描述 有n个点和m个区间,点和区间的端点全部是整数,对于点a和区间[b,c],若a>=b且a<=c,称点a满 ...
- Java实现蓝桥杯-算法提高 P1003
算法提高 P1003 时间限制:1.0s 内存限制:256.0MB 作为一名网络警察,你的任务是监视电子邮件,看其中是否有一些敏感的关键词.不过,有些狡猾的犯罪嫌疑人会改变某些单词的字母顺序,以逃避检 ...
- Java实现蓝桥杯 算法提高 八皇后 改
**算法提高 8皇后·改** 时间限制:1.0s 内存限制:256.0MB 提交此题 问题描述 规则同8皇后问题,但是棋盘上每格都有一个数字,要求八皇后所在格子数字之和最大. 输入格式 一个8*8的棋 ...
- Java实现 蓝桥杯 算法提高 高精度减法(JDK方法)
试题 算法提高 高精度减法 问题描述 高精度减法 输入格式 两行,表示两个非负整数a.b,且有a > b. 输出格式 一行,表示a与b的差 样例输入 1234567890987654321 99 ...
随机推荐
- 从浅入深——理解JSONP的实现原理
由于浏览器的安全性限制,不允许AJAX访问 协议不同.域名不同.端口号不同的 数据接口,浏览器认为这种访问不安全: 可以通过动态创建script标签的形式,把script标签的src属性,指向数据接口 ...
- .NETcore中使用jwt来对api进行身份验证
对于 登陆,身份,授权这之类的操作,我们最常用的几种方法无非就是 cookie session token 这三者的差别 https://www.cnblogs.com/moyand/p/904797 ...
- [CodeForces 300C Beautiful Numbers]组合计数
题意:十进制的每一位仅由a和b组成的数是“X数”,求长度为n,各数位上的数的和是X数的X数的个数 思路:由于总的位数为n,每一位只能是a或b,令a有p个,则b有(n-p)个,如果 a*p+b*(n-p ...
- HDU 2005 (水)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2005题目大意:给定年份,计算是第几天 解题思路: 很水,判定下是否为闰年,方法:四年一闰,百年不闰,四 ...
- python--递归函数的学习
递归:函数间接或者直接调用自己 递归分两个过程 1.往下调用,分解的过程 2.往上回溯,综合的过程 递归的条件: 一定要有结束的条件 例子:阶乘: def fun_a(n): #print(n) if ...
- Adaboost原理及相关推导
提升思想 一个概念如果存在一个多项式的学习算法能够学习它,并且正确率很高,那么,这个概率是强可学习的.一个概念如果存在一个多项式的学习算法能够学习它,并且学习的正确率仅比随机猜测略好,那么,这个概念是 ...
- Python操作MongoDB代码示例
import pymongo #pip install pymongo安装python操作mongodb的模块 myclient=pymongo.MongoClient(host='127.0.0.1 ...
- STM32F103出现CPU could not be halted问题的解决方案
问题描述: **JLink Warning: CPU could not be halted ***JLink Error: Can not read register 15 (R15) while ...
- Flask开发技巧之异常处理
Flask开发技巧之异常处理 目录 Flask开发技巧之异常处理 1.Flask内置异常处理 2.HTTPException类分析 3.自定义异常处理类 4.方便的定义自己的错误类 5.注意事项 本人 ...
- Gym101612L Little Difference
题目链接:https://vjudge.net/problem/Gym-101612L 知识点: 数学 题目大意: 给一个数 \(n(1 \le n \le 10^{18})\),要求将 \(n\) ...