在进行java学习的时候,完成的一道习题。
题目要求:输入a,b,c三个数,代入到ax2+bx+c=0中进行运算,输出x1和x2,其中x1为较大的解,x2为较小的解,结果保留两位小数。
在保留两位小数时,我用的是 java.math类中的BigDecimal方法:

import java.math.BigDecimal;

其中使用了BigDecimal.ROUND_HALF_DOWN将小数点后两位之后的数字直接抹去。

BigDecimal z = new BigDecimal(x1);
x1 = z.setScale(2, BigDecimal.ROUND_HALF_DOWN).doubleValue();
BigDecimal d = new BigDecimal(x2);
x2 = d.setScale(2, BigDecimal.ROUND_HALF_DOWN).doubleValue();

这个程序的核心思想是通过二元一次函数的求根公式,先求出Δ,然后判断是否为Δ是否为0,再将a,b,c带入求根公式当中进行计算,最后将大的数存入x1,小的数存入x2,得出最终结果。
具体代码如下:

import java.math.BigDecimal;
import java.util.Scanner;public class demo1 {public static void main(String[] args) {Scanner cin = new Scanner(System.in);System.out.println("Please enter the A:");double a = cin.nextDouble();System.out.println("Please enter the B:");double b = cin.nextDouble();System.out.println("Please enter the C:");double c = cin.nextDouble();double dert = b*b-(4*a*c);double x1 = 0.0;double x2 = 0.0;boolean s = false;if(dert>=0){if(dert != 0){x1 = (-b+Math.sqrt(dert))/(a*2);x2 = (-b-Math.sqrt(dert))/(a*2);}else{x1 = x2 = -(b/(a*2));}s = true;x1 = x1 *100 / 100;x2 = x2 *100 / 100;BigDecimal z = new BigDecimal(x1);x1 = z.setScale(2, BigDecimal.ROUND_HALF_DOWN).doubleValue();BigDecimal d = new BigDecimal(x2);x2 = d.setScale(2, BigDecimal.ROUND_HALF_DOWN).doubleValue();}if(!s){System.out.println("Don't have X");}else{if(x1<x2){double t = x1;x1 = x2;x2 = t;} System.out.println(x1+" "+x2);}cin.close();}
}

下面展示一段测试结果:

而当Δ小于零时:

希望以上代码对于需要的人有所帮助,其中有很大的不足请在评论区批评指正。

java实现一元二次函数求解相关推荐

  1. JAVA学习-JAVA实现一元二次方程求解

    JAVA实现一元二次方程求解 求3X2+4X-1=0的根 代码: public class SolveEquation {//定义公共类public static void main(String[] ...

  2. java实现一元二次方程求解问题

    import java.util.Scanner;class Exer1{public static void main(String[] args){Scanner scan = new Scann ...

  3. 一元二次函数求解(三角函数、二元一次函数转换为一元二次函数的思路)

    下面式子一和式子二是最初的两个式子,其中只有和是未知数,其余的都是已知数.通过推导求出相应的 和两个未知数的值. 式子一: 式子二: 通过上面的两个式子进行联立求解 和 的值. 一开始上面的两个式子求 ...

  4. C#实现一元二次函数求解(实根+虚根)含源码

    代码: //求解ax^2+bx+c=0 using System; using System.ComponentModel;class Programme {static void Main(){st ...

  5. java 输入 方程,用java 编写一程序,求解一元二次方程:aX2+bX+c=0.参数a、b及c从命令行做参数输入 java...

    题目: 用java 编写一程序,求解一元二次方程:aX2+bX+c=0.参数a.b及c从命令行做参数输入 java 答案参考: 以下程序在jdk5.0测试通过 import java.util.Sca ...

  6. 二次函数怎么解用计算机,解二次函数的方法:一元二次函数过已知点,用EXCEL求解系数...

    excle利用公式计算二次函数ax2十bx十x的值 假设X在的位置为表格的:D1; 那么在一个需要输出结果的表格中设置公式如下: =(a*D1*D1) (b*D1) D1 即可. Excel 一元二次 ...

  7. 洛谷——P1024 [NOIP2001 提高组] 一元三次方程求解

    P1024 [NOIP2001 提高组] 一元三次方程求解 题目描述 有形如:a x^3 + b x^2 + c x + d = 0a**x3+b**x2+c**x+d=0 这样的一个一元三次方程.给 ...

  8. c语言求一元二次函数根,编写求一元二次函数的根的函数 C

    二次函数与一元二次方程,一元二次不等式的关系? 二次方程ax²+bx+c=0可以看做给定二次函数y=ax²+bx+c的函数值为0时的情况因此当函数与X轴没有交点时,二次方程也无解二次不等式可以看做是二 ...

  9. 试题 算法训练 一元三次方程求解

    试题 算法训练 一元三次方程求解 资源限制 内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 有形如:ax3+bx2+cx+ ...

最新文章

  1. RPC 笔记(01)— RPC概念、调用流程、RPC 与 Restful API 区别
  2. Linux下运行java DES解密失败,报javax.crypto.BadPaddingException:Given final block not properly padded
  3. 后台开发经典书籍--大话设计模式
  4. og-bin=mysql-bin_TiDB Binlog 常见问题
  5. 分享一个帮助用户全屏阅读的jQuery插件 - jQuery fullscreen
  6. 记录如何防止跨站点脚本攻击之抄写
  7. Django的Modelforms的介绍
  8. java 注解校验_Java开发编写自定义校验注解和校验器
  9. 【数据分享】糖尿病患者研究数据集
  10. Elastic-jobQuartz定时任务
  11. yuicompressor java_YUI Compressor使用配置方法 JS/CSS压缩工具
  12. jq ui.dialog.js简介
  13. 2021年A特种设备相关管理(电梯)考试题库及A特种设备相关管理(电梯)证考试
  14. 甲骨文裁员,华大人员瘦身优化,亚马逊鼓励离职?
  15. 7-6 字符串逆序 (10 分)
  16. 开源框架Banner实现图片轮播
  17. html 设计好看的按钮,html 好看按钮
  18. unity转微信小程序小游戏
  19. 【转】MIT牛人解说数学体系
  20. 【装Linux系统时卡在logo处】禁用独显驱动

热门文章

  1. C++沉思录 第十章
  2. 人工智能 无人驾驶的第一本书推荐
  3. 提示 api-ms-win-crt-runtime-l1-1-0.dll丢失 ivms-4200 安装好运行报错api-ms-win-crt-runtime-|1-1-0.dll
  4. 1116. 【HNOI2008】T_OY(踢欧阳^_^) (Standard IO)斜率优化dp
  5. 我所遇到的团队管理问题与解决方案
  6. Altair 画世界热力地图
  7. POJ 2017 计算公路里程 模拟题
  8. 数字孪生钢铁行业可视化解决方案开发案例
  9. group by分组取组内第一条
  10. 涉及国家秘密的计算机系统集成,深圳哪些企业有涉及国家秘密的计算机信息系统集成资质证书?...