2021.06.02会解方程的计算器
2021.06.02会解方程的计算器
(题目来源:)
题目描述
为了很好的完成这个任务,ZL先生首先研究了一些一元一次方程的实例:
4+3x=8
6a-5+1=2-2a
-5+12y=0
ZL先生被主管告之,在计算器上键入的一个一元一次方程中,只包含整数、小写字母及+、-、=这三个数学符号(当然,符号“-”既可作减号,也可作负号)。方程中并没有括号,也没有除号,方程中的字母表示未知数。
你可假设对键入的方程的正确性的判断是由另一个程序员在做,或者说可认为键入的一元一次方程均为合法的,且有唯一实数解。
输入格式
一个一元一次方程。
输出格式
解方程的结果(精确至小数点后三位)。
样例输入
6a-5+1=2-2a
样例输出
a=0.750
思路
模拟题,talk is cheap, show u the code.
代码
class Solution{ void test() {Scanner cin = new Scanner(System.in);String fun = cin.nextLine();String[] strs = fun.split("=");String left = strs[0];String right = strs[1];if(left.charAt(0) != '+' && left.charAt(0) != '-') left = '+'+left;if(right.charAt(0) != '+' && right.charAt(0) != '-') right = '+'+right;int lasInd = -1;List<num> leftNums = new ArrayList<num>(); //左边所有项lasInd = 0;for(int i = 0; i < left.length(); i++) {if((left.charAt(i) == '+' || left.charAt(i) == '-') && i != 0) {leftNums.add(new num(left.substring(lasInd,i)));lasInd = i;}}leftNums.add(new num(left.substring(lasInd)));List<num> rightNums = new ArrayList<num>(); //右边所有项lasInd = 0;for(int i = 0; i < right.length(); i++) {if((right.charAt(i) == '+' || right.charAt(i) == '-') && i != 0) {rightNums.add(new num(right.substring(lasInd,i)));lasInd = i;}}rightNums.add(new num(right.substring(lasInd)));int t = 0; //合并后的系数int c = 0;for(num x: leftNums) { if(x.above0) {if(x.isX) t += x.times;else c += x.n;} else {if(x.isX) t -= x.times;else c -= x.n;}}for(num x: rightNums) {if(x.above0) {if(x.isX) t -= x.times;else c -= x.n;} else {if(x.isX) t += x.times;else c += x.n;}}double C = c*(-1);double T = t;char ch = 'x';for(int i = 0; i < fun.length(); i++) if(fun.charAt(i)>='a'&&fun.charAt(i)<='z') {ch = fun.charAt(i);break;}if(c==0) System.out.println("0.000"); //由于浮点数表示时会显示"-0.000"else System.out.printf(ch+"=%.3f",C/T);}}class num{int n;boolean isX = false;boolean above0;int times;char ch;num(String arg){//判断正负if(arg.charAt(0) == '+')above0 = true;else above0 = false;//判断是否有未知数int ind = -1;for(int i = 0; i < arg.length(); i++) {if(arg.charAt(i)>='a' && arg.charAt(i)<='z') {ind = i;ch = arg.charAt(i);isX = true;break;}}if(isX) { //如果有未知数,找到系数StringBuilder sb = new StringBuilder();for(int i = 1; i < ind; i++) {sb.append(arg.charAt(i));}if(sb.length()==0) times = 1;else times = Integer.parseInt(sb.toString());} else { //如果没有未知数,找到数值大小n = Integer.parseInt(arg.substring(1));}}@Overridepublic String toString() {if(isX) {return "有未知数:"+(above0?"+":"-")+times+"x";} else {return (above0?"+":"-")+n;}}}
2021.06.02会解方程的计算器相关推荐
- 2021.06.02税收和补贴问题
2021.06.02税收和补贴问题 (题目来源:洛谷-P1023) 题目描述 每样商品的价格越低,其销量就会相应增大.现已知某种商品的成本及其在若干价位上的销量(产品不会低于成本销售),并假设相邻价位 ...
- 怎样用计算机求方程组,【教程】用计算器解方程(牛顿法)
一.前言 很多计算器都自带利用标准式解方程的功能,解方程式,需要手动输入abc的值.但这样往往需要化简出abc到底是多少,这样容易计算错误,还加大了计算量,往往在注册考试中不实用.下面我介绍一个直接的 ...
- 超级计算机app不能解方程,有了这款被 App Store 官方推荐的超级计算器,该把手头的计算器扔了...
原标题:有了这款被 App Store 官方推荐的超级计算器,该把手头的计算器扔了 网易有道又发布了一款广受好评的新产品 -- 「超级计算器」,应用一上线就被 App Store 官方首页推荐,短时间 ...
- 会解方程会画图的超级计算器
会解方程会画图的超级计算器 这个计算器功能强大,可以解方程.解不等式,判断素数,比较大小,映射,筛选,精度计算,求导,求积分,求极限,绘制图形等多项功能,操作简单. # coding: GB2312 ...
- 九度OJ 1103:二次方程计算器 (解方程)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2804 解决:633 题目描述: 设计一个二次方程计算器 输入: 每个案例是关于x的一个二次方程表达式,为了简单,每个系数都是整数形式. 输 ...
- 检查方程的计算机,计算器解方程
<计算器解方程>由会员分享,可在线阅读,更多相关<计算器解方程(3页珍藏版)>请在人人文库网上搜索. 1.CASIO fx-82ES 计算器方程使用步骤首先开机(建议先将计算机 ...
- 科学计算机等号按哪个,急!!计算器解方程等于号怎么按?
1.[ALPHA]+[CALC]打出等号,按[SHIFT]+[CALC]键,屏幕上会提示输入初始值. 2.指定初值后按[=],即可求出方程的一个最接近给定初值的近似解. 科学型计算器是电子计算器的一种 ...
- 02 解方程专题 (各学科:高数、线代、专业课)
解方程专题(各学科:高数.线代.专业课) 一.高等数学--微分方程 常微分方程分类: (1)一阶常系数方程 1.1可分离变量的微分方程 1.2.齐次微分方程 1.3.一阶线性微分方程 1.4.伯努利方 ...
- Mculover666的博客文章导航(嵌入式宝藏站)(2021.06.17更新)
一.MCU系列 1. 开发环境 [Keil MDK](一)Keil MDK 5.28 的下载.安装.破解 [Keil MDK](二)Keil MDK中芯片器件包的安装 [Keil MDK](三)Kei ...
最新文章
- php 上万关键字匹配,JavaScript 上万关键字瞬间匹配实现代码
- python 压缩文件 调用7z_Python:如何从Python压缩的7z文件中读取一行?
- VTK:网格之OBBDicer
- android 查看gpio状态_GPIO子系统重要概念
- java string document_java - String 和 document 的相互转换总结
- Swift - UITableView状态切换效果
- css预处理器sass使用教程(多图预警)
- 通过极简模拟框架让你了解ASP.NET Core MVC框架的设计与实现[中篇]:请求响应
- java版 modbus crc16校验 (已测试成功)_java版 ModBus CRC16校验 (已测试成功)
- 音量已经调到100%,如何再调整
- 分库分表学习总结(3)——深入理解分布式事务
- 编程之美——数字哑谜
- 实现基于 ASP.NET Forms 身份验证的跨子域单点登录
- 装完Win8后推荐进行的优化
- 如何学习才能成为优秀的Web前端开发工程师?
- 基于php+Mysql新闻管理系统 开题报告
- NOD32离线升级更新包使用方法
- 2021年低压电工复审考试及低压电工模拟考试
- 《基于张量网络的机器学习入门》学习笔记9(HHL算法)
- 搜索引擎的排序技术综述
热门文章
- 指纹辨识真的安全?AI能轻松生产出假指纹破解
- 【bat】curl文件下载
- 箝口侧目的拼音及解释
- 决赛战报|第三届全国人工智能大赛决赛ing
- pcb布线拐角处打地孔_PCB上的走线到底能不能走90°拐角?这是一个值得关注的问题...
- php开启curl扩展不生效
- 特战基地之鸿蒙系统,鸿蒙操作系统开源是怎么回事?智能家居企业应该怎么做?...
- 2021年笔记本电脑什么牌子好
- 本地计算机策略没东西,Windows找不到本地组策略
- 物联网操作系统Zephyr(蓝牙篇)之6.0 zephyr os中的bt stack概述