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会解方程的计算器相关推荐

  1. 2021.06.02税收和补贴问题

    2021.06.02税收和补贴问题 (题目来源:洛谷-P1023) 题目描述 每样商品的价格越低,其销量就会相应增大.现已知某种商品的成本及其在若干价位上的销量(产品不会低于成本销售),并假设相邻价位 ...

  2. 怎样用计算机求方程组,【教程】用计算器解方程(牛顿法)

    一.前言 很多计算器都自带利用标准式解方程的功能,解方程式,需要手动输入abc的值.但这样往往需要化简出abc到底是多少,这样容易计算错误,还加大了计算量,往往在注册考试中不实用.下面我介绍一个直接的 ...

  3. 超级计算机app不能解方程,有了这款被 App Store 官方推荐的超级计算器,该把手头的计算器扔了...

    原标题:有了这款被 App Store 官方推荐的超级计算器,该把手头的计算器扔了 网易有道又发布了一款广受好评的新产品 -- 「超级计算器」,应用一上线就被 App Store 官方首页推荐,短时间 ...

  4. 会解方程会画图的超级计算器

    会解方程会画图的超级计算器 这个计算器功能强大,可以解方程.解不等式,判断素数,比较大小,映射,筛选,精度计算,求导,求积分,求极限,绘制图形等多项功能,操作简单. # coding: GB2312 ...

  5. 九度OJ 1103:二次方程计算器 (解方程)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2804 解决:633 题目描述: 设计一个二次方程计算器 输入: 每个案例是关于x的一个二次方程表达式,为了简单,每个系数都是整数形式. 输 ...

  6. 检查方程的计算机,计算器解方程

    <计算器解方程>由会员分享,可在线阅读,更多相关<计算器解方程(3页珍藏版)>请在人人文库网上搜索. 1.CASIO fx-82ES 计算器方程使用步骤首先开机(建议先将计算机 ...

  7. 科学计算机等号按哪个,急!!计算器解方程等于号怎么按?

    1.[ALPHA]+[CALC]打出等号,按[SHIFT]+[CALC]键,屏幕上会提示输入初始值. 2.指定初值后按[=],即可求出方程的一个最接近给定初值的近似解. 科学型计算器是电子计算器的一种 ...

  8. 02 解方程专题 (各学科:高数、线代、专业课)

    解方程专题(各学科:高数.线代.专业课) 一.高等数学--微分方程 常微分方程分类: (1)一阶常系数方程 1.1可分离变量的微分方程 1.2.齐次微分方程 1.3.一阶线性微分方程 1.4.伯努利方 ...

  9. Mculover666的博客文章导航(嵌入式宝藏站)(2021.06.17更新)

    一.MCU系列 1. 开发环境 [Keil MDK](一)Keil MDK 5.28 的下载.安装.破解 [Keil MDK](二)Keil MDK中芯片器件包的安装 [Keil MDK](三)Kei ...

最新文章

  1. php 上万关键字匹配,JavaScript 上万关键字瞬间匹配实现代码
  2. python 压缩文件 调用7z_Python:如何从Python压缩的7z文件中读取一行?
  3. VTK:网格之OBBDicer
  4. android 查看gpio状态_GPIO子系统重要概念
  5. java string document_java - String 和 document 的相互转换总结
  6. Swift - UITableView状态切换效果
  7. css预处理器sass使用教程(多图预警)
  8. 通过极简模拟框架让你了解ASP.NET Core MVC框架的设计与实现[中篇]:请求响应
  9. java版 modbus crc16校验 (已测试成功)_java版 ModBus CRC16校验 (已测试成功)
  10. 音量已经调到100%,如何再调整
  11. 分库分表学习总结(3)——深入理解分布式事务
  12. 编程之美——数字哑谜
  13. 实现基于 ASP.NET Forms 身份验证的跨子域单点登录
  14. 装完Win8后推荐进行的优化
  15. 如何学习才能成为优秀的Web前端开发工程师?
  16. 基于php+Mysql新闻管理系统 开题报告
  17. NOD32离线升级更新包使用方法
  18. 2021年低压电工复审考试及低压电工模拟考试
  19. 《基于张量网络的机器学习入门》学习笔记9(HHL算法)
  20. 搜索引擎的排序技术综述

热门文章

  1. 指纹辨识真的安全?AI能轻松生产出假指纹破解
  2. 【bat】curl文件下载
  3. 箝口侧目的拼音及解释
  4. 决赛战报|第三届全国人工智能大赛决赛ing
  5. pcb布线拐角处打地孔_PCB上的走线到底能不能走90°拐角?这是一个值得关注的问题...
  6. php开启curl扩展不生效
  7. 特战基地之鸿蒙系统,鸿蒙操作系统开源是怎么回事?智能家居企业应该怎么做?...
  8. 2021年笔记本电脑什么牌子好
  9. 本地计算机策略没东西,Windows找不到本地组策略
  10. 物联网操作系统Zephyr(蓝牙篇)之6.0 zephyr os中的bt stack概述